输出[m,n]范围内的所有斐波那契(Fibonacci)数,m,n这两个数由键盘输入。
【提示】
1,1,2,3,5,8,13,21,34,……这是斐波那契(Fibonacci)数列的前几项。斐波那契数列的特点:前两项均为1,后面任意一项都是其前面两项之和。
本实验虽然只要求输出在[m,n]范围内的斐波那契数,但是依然需要从第1个Fibonacci数开始依次得到下一个,并判断是否是需要输出的那个。
用一维数组的?怎么写 要有一维数组啊!!!!
while(f[i]<n){
f[i+1]=f[i]+f[i-1];
i+=1;
}
for(int j=0;j<f.length;j++){
if(f[i]>m){
printf("%d ,",f[i]);
}else{
break;}
}
#include <stdio.h>
int main()
{
int f[100];
f[0]=1,f[1]=1,f[2]=2;
int m,n;
scanf("%d%d",&m,&n);
//获取输入的m,n的值
int i=2;
while(f[i]<n){
if(f[i]>m)
printf("%d ,",f[i]);
f[i+1]=f[i]+f[i-1];
i+=1;
}
return 0;
}
写一个for里面计算斐波那契数,里面嵌套两个if,一个判断是否输出,另一个判断break,似乎用不到数组…
int f[3];
f[0] = 1;
f[1] = 1;
f[2] = 0;
int i = 0;
while (f[i]<=n){
f[i] = f[(i+2)%3] + f[(i+1)%3];
if(f[i]>=m){
printf("%d ,",f[i]);
}
i = (i + 1) % 3;
}