求Fibonacci数列中小于t的最大的一个数,其中t由键盘输入。例如:输入t=1000时 ,则输出987。
一个实现,供参考:
#include<stdio.h>
#include<stdlib.h>
/*
算法参考:
递归求斐波那契
参考链接:https://blog.csdn.net/fortheboss/article/details/102725914
*/
int feb(int n)
{
if(n < 2)
return 1; //特殊值单独列出来
else
return (feb(n-1) + feb(n-2)); //主要的递归
}
int main(void){
int t;
scanf("%d",&t);
int i=0;
int num=feb(i);
int pre=num;
while(num<t){ //当当前斐波那契数小于指定的t则循环
pre=num; //记录上一次斐波那契的数
i++;
num=feb(i); //计算下一个斐波那契的数
}
printf("%d",pre); //打印结果
return 0;
}