如何用递归解决斐波那契数列
答案:2 悬赏:0 手机版
解决时间 2021-03-19 05:54
- 提问者网友:龅牙恐龙妹
- 2021-03-18 22:23
如何用递归解决斐波那契数列
最佳答案
- 五星知识达人网友:污到你湿
- 2021-03-18 23:32
斐波那契数列定义 f(1)=1, f(2)=1, f(n)=f(n-1)+f(n-2)用递归的方法解决是最快的(对设计者而言)int fipo(int n){
if (n==1) return 1;
else if (n==2) return 1;
else {
return fipo(n-1)+fipo(n-2);
}
}
函数fipo 会一直不断地调用自己,直到 n=3时, 才能计算出 f(3)=f(2)+f(1)=2. 然后在一步一步退回展开 f(4)=f(3)+f(2)=2+1=3, f(5)=f(4)+f(3)=3+2=5,... 一直返回到第一次调用自己(递归)的地方,这样算出f(n)的值
if (n==1) return 1;
else if (n==2) return 1;
else {
return fipo(n-1)+fipo(n-2);
}
}
函数fipo 会一直不断地调用自己,直到 n=3时, 才能计算出 f(3)=f(2)+f(1)=2. 然后在一步一步退回展开 f(4)=f(3)+f(2)=2+1=3, f(5)=f(4)+f(3)=3+2=5,... 一直返回到第一次调用自己(递归)的地方,这样算出f(n)的值
全部回答
- 1楼网友:上分大魔王
- 2021-03-19 00:23
斐波那契数列的发明者,是意大利数学家列昂纳多·斐波那契.
斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、……
下面是前1000项斐波那契数列的和的vb代码:
private sub command1_click()
dim a as integer
dim b as integer
dim c as integer
dim s as long
dim i as integer
a = 1
b = 1
s = 2
for i = 3 to 1000
c = a + b
s = s + c
a = b
b = c
next i
print s
end sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯