斐波那契正常写法(兔子繁衍)
#include<stdio.h>
int main(){
int f1=1, f2=1,f3;
int n;
printf("输入月份,求此时兔子数量:\n");
scanf("%d",&n);
for (int i = 1; i < n; i++)
{
f3 = f1 + f2;//等于前两数之和
f1 = f2;//将值不断更新为离所求数最近两位数的值
f2 = f3;
}
printf("此时一共%d只兔子",f3);
return 0;
}
递归写法:
#include<stdio.h>
int fibo(int m){
int f;
if (m == 1 || m == 2){//出口是f(1)和f(2);
f = 1;//当满足出口条件,值为1
}
else{
f = fibo(m - 1) + fibo(m - 2);//否则,就是先分散在收集,当前数等于前两数之和
}
return f;
}
int main(){
int a;
printf("输入月份,查看兔子数量:\n");
scanf("%d",&a);
printf("此时一共有%d只兔子",fibo(a));
return 0;
}