美文网首页
斐波那契数列

斐波那契数列

作者: 垂直居中的句号 | 来源:发表于2021-05-06 16:20 被阅读0次

古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少?

这个问题说的是一对兔子,最后兔子总数需不需要乘以2?
我居然写的
int sum=2
for(int i=3;i<=n;i++){
int a = i/3;
sum=sum+2^a;}
这样算得兔子(按只)的规律为 2,2,4,6,8;是错的
优化:
int sum=2
for(int i=3;i<=n;i++){
int a = i/3;
int b=i%3;
if(b==0){
sum=sum+2^a;
}else{
sum=sum+2*b;
}
这样算得兔子(按只)的规律为 2,2,4,6,8;是错的

image.png

正确解法: 兔子的规律为数列1,1,2,3,5,8,13,21.... 从第3项开始为前2项之和
public static int f(int i) {
//前2个月为1
if(i==1 || i==2) {
return 1;
}
return f(i-1)+f(i-2);
}

相关文章

网友评论

      本文标题:斐波那契数列

      本文链接:https://www.haomeiwen.com/subject/txsddltx.html