标题:新手请教:这段程序中x怎么会等于10,是从s=s(n-1)+n这公式计算出的?怎么算 ...
取消只看楼主
zh99ja
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2020-4-20
结帖率:100%
已结贴  问题点数:20 回复次数:7 
新手请教:这段程序中x怎么会等于10,是从s=s(n-1)+n这公式计算出的?怎么算出的没搞懂?
Function s(n As Integer) As Integer
If n = 1 Then
s = 1
Else
s = s(n - 1) + n
 End If
End Function

Private Sub form_click()
Dim x As Integer
x = s(4)
Print x
End Sub

正确答案是:x=10

而对于我这个生手,真有点不太清楚这程序的计算过程?求高手指教,谢谢了!
搜索更多相关主题的帖子: End Integer 公式 等于 计算 
2020-05-10 08:28
zh99ja
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2020-4-20
得分:0 
仿佛这段程序中的if then endif是个循环程序,循环从n=4至n=1终止,但if只是个条件语句不是循环语句,是谁在让它循环?
2020-05-10 09:30
zh99ja
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2020-4-20
得分:0 
如果循环真的进行了
n从4至1,我试着列出相应的s=s(n-1)+n的公式如下:
当n=4时,s=s(3)+4
当n=3时,s=s(2)+3
当n=2时,s=s(1)+2
当n=1时,s=s(0)+1,当然此时已经在条件中直接是n=1 then s=1 了。
但上面的左边的s值是多少是怎么算出来的?
在程序中插入打印,上面的n=4,3,2,1时相应的x=s(n)从上而下是10,6,3,1,其中10就是正确答案。
但确实不知道怎样得出的???
2020-05-10 09:45
zh99ja
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2020-4-20
得分:0 
这个试题是我无意查VB程序时碰到的,具体那个网站忘记了,有四个选择,最后一个就是10,自己琢磨了半天没猜出来,只好写下程序在vb6上运行,单击窗体就出现10,所以我估计10应该就是正确答案。
2020-05-10 10:03
zh99ja
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2020-4-20
得分:0 
谢谢,有点启发了,由于自己是生手,但要完全懂你说的这依次扩展算式,包括其中的“函数是一个递归,自己调用自己”的内容可能还得多学习实践下,有点惭愧,见笑了,容我再慢慢体会你说明的内容,再次谢了!
2020-05-10 11:39
zh99ja
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2020-4-20
得分:0 
刚才回到原输入的程序中,按你上面提到的将s = s(n - 1) + n改为s = s(n - 1) *n,应该就是N!阶乘的递归吧,试运行一下,也能输出x=s(4)结果,不过不是10而变成24了,一边学一边试,能有点长进。
2020-05-10 14:19
zh99ja
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2020-4-20
得分:0 
也学到一点,这个递归的控制终止在于if n=多少的设置,将原程序中n=1改为n=-10,那递归将在n从4减一一直到n=-10,在s = s(n - 1) + n中还能进行下去,但在改为s = s(n - 1) *n的阶乘递归后,到n=-10时,程序提示 :溢出了,至于相应条件语句中if n=多少时的s对应值也要根据需要变动,否则这个程序中的结果x=s(4)的原来的10会变的说不清楚了。。。
2020-05-10 14:48
zh99ja
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2020-4-20
得分:0 
有一个问题?如果程序中是写的s(n)=s(n-1)+n,那好像这递归调用自己看起来就比较明显,要是按程序中的s=s(n-1)+n就好像这个s与s()不是一类数?
这s(n)=s(n-1)+n和s=s(n-1)+n在递归上有区别吗?还是vb中规定就是一样的?
2020-05-12 11:15



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-501528-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021803 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved