输出斐波那契Fibonacci数列中小于t的最大的一个数,其中由键盘输入。例如,输入t=1000时,输出987 说明:斐波那契数列:1,1,2,3,5,8,13,21...
//依次查找(需要用到循环结构)斐波那契数列中的数字,直到符合条件(需要用到选择结构)再输出。
//利用函数
#include<stdio.h>
int fibo(int n); //函数声明,告诉编译器程序中会用到这个函数,先不要着急报错
int main()
{
int t;
printf("请输入t的值:");
scanf("%d",&t);
int i=1;
int num;
int pre;
if(t<2)//判断能否在斐波那契数列中找到小于t的最大一个数
{
printf("不存在!");
}
else{
while(num<t)//通过循环找到斐波那契数列中小于t的最大的一个数
{
pre=num;
i++;
num=fibo(i);//调用函数
}
printf("%d",pre);}
return 0;
}
int fibo(int n)//斐波那契数列的第n项 (自定义函数,n为形式参数)
{
if(n==1||n==2)
{
return 1;//返回1
}
else
{
return fibo(n-2)+fibo(n-1);//利用递归 ,返回前两数之和
}
}
//方法二
#include<stdio.h>
int main()
{
int i,a,count,sum,pre;//定义5个整型变量
i=1;
a=1;
sum=1;
int t;
printf("请输入t的值:");
scanf("%d",&t);
if(t<2)//判断能否在斐波那契数列中找到小于t的最大一个数
{
printf("不存在!");
}
else{
while(sum<t)//进入循环,依次查找斐波那契数列中的数,直到大于等于t时结束循环
{
a=i;
i=sum;
pre=sum;
sum=i+a; //后一个数等于前两个数之和
}
printf("%d\t",pre);
}
return 0;
}