c语言:求Fibonacci数列中小于t的最大的一个数,其中t由键盘输入。例如:输入t=1000时 ,则输出987。

求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;
} 

img