永发信息网

求vb题解答,,

答案:3  悬赏:0  手机版
解决时间 2021-03-04 23:17
  • 提问者网友:留有余香
  • 2021-03-04 07:14
Sub Button1_Click(……)Handles Button1.Click
MsgBox(p1(3.0,7)
End sub
Public Function p1!(Byval x!,Byval n%)
if n = 0 then
p1=1
else
if n mod 2=1 then
p1=x*p1(x,n\2)
else
p1=p1(x,n\2)\x
end if
end if
end function

要求运算结果,答案是27,,为啥?求过程,,
最佳答案
  • 五星知识达人网友:渡鹤影
  • 2021-03-04 07:46
这个涉及递归调用自己,第二参数是奇数,所以 执行p1=x*p1(x,n\2),每次调用时参数n先被整除2,所以这个参数依次为 7,3,1,0 。直到参数为0时执行p1=1语句,所以整个过程相当如下:

dim p
p=1 :n=0
p=p*3.0 :n=1
p=p*3.0 :n=3
p=p*3.0 :n=7
p1=p
全部回答
  • 1楼网友:荒野風
  • 2021-03-04 08:15
属性,事件,方法 设计模式,调试模式,中断模式 解释执行,编译执行 78 123445 从s中取后两个字符 1 2 Sqr(16)= 4 label1.caption="a*b=" text1.setFocus (我亲自测试过的) 求采纳为满意回答。
  • 2楼网友:轮獄道
  • 2021-03-04 08:03
你的是作业吧?是哪儿抄来的解答然后又抄错了吧? 1)MsgBox(p1(3.0,7)应为MsgBox(p1(3.0,7)),少了一个右括号。 2)p1函数明显很多错误,请参考:    Public Function p1(Byval x As Double, n As Integer) As Object         If n = 0 Then             p1 = 1         Else             If n Mod 2 = 1 Then                 p1 = x * p1(x, n \ 2)             Else                 p1 = p1(x, n \ 2) \ x             End If         End If     End Function这应该就是你需要的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯