一道C语言编程问题求解答如何写呢

输出[m,n]范围内的所有斐波那契(Fibonacci)数,m,n这两个数由键盘输入。
【提示】
1,1,2,3,5,8,13,21,34,……这是斐波那契(Fibonacci)数列的前几项。斐波那契数列的特点:前两项均为1,后面任意一项都是其前面两项之和。
本实验虽然只要求输出在[m,n]范围内的斐波那契数,但是依然需要从第1个Fibonacci数开始依次得到下一个,并判断是否是需要输出的那个。
用一维数组的?怎么写 要有一维数组啊!!!!

4个回答

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

qq_36519547
qq_36519547 不行啊,是个无限循环
3 年多之前 回复
   #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;
}
qq_36519547
qq_36519547 回复当作看不见: 循环停止条件是啥
3 年多之前 回复
qq_29594393
当作看不见 回复qq_36519547: 把if里面的输出删除,在这个循环后再加一个循环输出数组的值,写个判断就行
3 年多之前 回复
qq_36519547
qq_36519547 试了你这个程序了,输入 1 3 结果就有个2 ,怎么让他 结果是 1 2 3 啊
3 年多之前 回复
Book1346
Book1346 或者数组循环利用
3 年多之前 回复
Book1346
Book1346 回复qq_36519547: 设置100只是第100个斐波那契数,不是小于100的斐波那契数,真要做到根据你输入的数来定义数组,还不如用链表,节省空间
3 年多之前 回复
qq_29594393
当作看不见 回复qq_36519547: 链表。想要无限制只能用链表
3 年多之前 回复
qq_36519547
qq_36519547 你这是100个数,我要想输入更大的呢。你就算设置9999个数,但我想输入到10000呢?怎么改变?
3 年多之前 回复

写一个for里面计算斐波那契数,里面嵌套两个if,一个判断是否输出,另一个判断break,似乎用不到数组…

qq_35189707
qq_35189707 判断条件>m输出斐波那契数,>n break
3 年多之前 回复

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

Book1346
Book1346 计算i之后
3 年多之前 回复
Book1346
Book1346 f[i] = f[(i+2)%3] + f[(i+1)%3];放错位置了,放到输出之后
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐