vb 利用递归求数列前10项之和(该数列的分子和分母均为斐波那契序列)
题目
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
举一反三
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
最新试题
- 有2种气态单质Am和Bn,已知2.4克Am和2.1克Bn所含的原子总数相等,分子数之比为2:3,A和B原子核内质子数和中子数均相等,A原子L层电子数是K层电子数的3倍,求:
- 我宁愿呆在家看电视英语怎么说
- 硝基苯中混有苯怎样除杂
- 已经修的和未修的长度比是1:5,再修490米后,已修的长度与未修的长度比值是3,这条路全长有多少?
- 肝糖原肌糖原分解产生的葡萄糖去向
- 找规律 填合适的数 3分之4,1,9分之8,()5分之4
- breach of contract是什么意思
- 设数列{an}前n项和为Sn,且Sn=2An-2,令bn=log2an.试求数列{an}的通项公式.设Cn=Bn/an,求证{an}的Tn
- 有一只蜗牛要爬到一棵高10米的树上.它白天能爬4.35米,但是每到晚上它睡着时,又滑下1.35米.这只蜗牛第几天才爬到树顶?
- They are in the living room,on the sofa.中on the sofa 作什么成分?
热门考点