vb 利用递归求数列前10项之和(该数列的分子和分母均为斐波那契序列)数列为1/2,2/3,3/5,5/8,8/13,13/21…,Fib(n)/Fib(n+1),(n=1,2,3,4…)斐波那契通项公式为Fib(n)=1,n=1,2 Fib(n-2)+Fib(n-1),n>=3程序代码如下:private sub command1_click()dim n as integerfor n=1 to 10sum=sum+fib(n)/fib(n+1)next nprint "sum";sumend subprivate function fib(a as integer)if a=1 thenelseif a=2 thenfib=2 elsefib=fib(a-1)+fib(a-2)end if end function这个程序代码哪位高手能完整的逐句解释一下呢?
vb 利用递归求数列前10项之和(该数列的分子和分母均为斐波那契序列)
数列为1/2,2/3,3/5,5/8,8/13,13/21…,Fib(n)/Fib(n+1),(n=1,2,3,4…)
斐波那契通项公式为
Fib(n)=1,n=1,2
Fib(n-2)+Fib(n-1),n>=3
程序代码如下:
private sub command1_click()
dim n as integer
for n=1 to 10
sum=sum+fib(n)/fib(n+1)
next n
print "sum";sum
end sub
private function fib(a as integer)
if a=1 then
elseif a=2 then
fib=2
else
fib=fib(a-1)+fib(a-2)
end if
end function
这个程序代码哪位高手能完整的逐句解释一下呢?
private sub command1_click() ’
dim n as integer '定义一个整型变量n
for n=1 to 10 '让n从1到10进行循环
sum=sum+fib(n)/fib(n+1) '对Sum变量进行求和运算,每循环一次sum加上 fib(n)/fib(n+1)
next n
print "sum";sum '打印经过循环运算之后Sum的值
end sub
private function fib(a as integer) '带一个参数a的函数fib
if a=1 then '判断参数的值,如果参数a=1,那么
‘这里没有执行任何过程,按说这里应该有一个fib = 1,也就是当a=1时,fib应该等于1.
elseif a=2 then '判断参数的值,如果参数a =2那么
fib=2 'fib函数的返回值为2
else '判断参数a的值,如果不等于1或者2,那么
fib=fib(a-1)+fib(a-2)
'这里利用递归运算,分别计算fib(a-1)的值和fib(a-2)的值,然后据此求出fib(a)的值
end if
end function