aa不要掉头发啊 2020-12-08 18:11 采纳率: 33.3%
浏览 14

第二问输出21 34 55 89这样写的思路是什么啊

 

  • 写回答

1条回答 默认 最新

  • a5156520 2024-02-09 22:54
    关注

    主要思路应该是先使用循环计算出小于m的Fibonacci数的项数i,然后再使用循环打印m和n之间的所有Fibonacci数。

    测试如下:

    参考链接:

    #include <stdio.h>
    
    
    // https://blog.csdn.net/m0_51393229/article/details/115825224
    int fib(int n){  // 计算第n项Fibonacci数为多少的递归函数,返回值为第n项Fibonacci数的值 
        
        if(n<=2){
            return 1;
        }else{
            return fib(n-1)+fib(n-2);
        }
        
    } 
    
    void PrintFN(int m, int n){  // 输出m项n之间的所有Fibonacci数 
        
        int i=1;   // Fibonacci数的项数,初始从第一项开始 
        int count=0;  // Fibonacci数标志,为0表示没有Fibonacci数,为1表示有Fibonacci数 
        int flag=1;  // 空格标志,为1表示不需要输出空格,为0表示需要输出空格 
        
        while(fib(i)<m){  // 这个循环用于计算出小于m的最大Fibonacci数的项数i,循环结束第i项的Fibonacci数必定大于等于m 
            i++;
        }
        
        while(fib(i)<=n){  // 如果当前项的Fibonacci数小于等于n,则循环输出其中的所有Fibonacci数 
            
            if(flag){  // 如果空格标志为1,则打印当前项的Fibonacci数 
                
                printf("%d",fib(i));  // 打印当前项的Fibonacci数 
                count=1;  // Fibonacci数标志置1,表示m和n之间有Fibonacci数 
                flag=0;  // 空格标志置0,表示后续打印需要先输出一个空格 
            }else{  // 如果空格标志为0,则先打印一个空格再打印当前项的Fibonacci数 
                printf(" %d",fib(i));
            }
            
            i++;  // Fibonacci数的项数指向下一项 
            
        }
        
        if(count==0){  // 如果Fibonacci数的标志为0,则打印对应的提示信息 
            printf("No Fibonacci number");
        }
        
    }
    
    int main(void){
        
        int m,n,t;
        
        scanf("%d%d%d",&m,&n,&t);  // 从输入获取m和n的值,以及需要计算哪一项Fibonacci数的项数t 
        printf("fib(%d) = %d\n",t,fib(t));  // 调用函数fib(),打印第t项的Fibonacci数的值 
        PrintFN(m,n);  // 调用PrintFN(),打印m和n之间的所有Fibonacci数 
        
        return 0;
        
    }
    
    

    img

    评论

报告相同问题?

悬赏问题

  • ¥15 Opencv配置出错
  • ¥15 模电中二极管,三极管和电容的应用
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused
  • ¥20 关于web前端如何播放二次加密m3u8视频的问题
  • ¥15 使用百度地图api 位置函数报错?