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,,为啥?求过程,,
求vb题解答,,
答案:3 悬赏:0 手机版
解决时间 2021-03-04 23:17
- 提问者网友:留有余香
- 2021-03-04 07:14
最佳答案
- 五星知识达人网友:渡鹤影
- 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
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这应该就是你需要的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯