xjh2527 2021-10-30 13:03 采纳率: 91.7%
浏览 276
已结题

程序设计 斐波那契数列

斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。这里我们定义另外一种斐波那契数列: F(0) = 7, F(1) = 11, F(n) = F(n-1) + F(n-2) (n>=2)。编程计算该数列的前n(n<1000000)项是否能被3整除。

输入格式:
输入为一个正整数n(n<1000000)。

输出格式:
输出上述数列前n项能否被3整除,能则输出“yes ”,否则输出"no "。注意:每个"yes"和"no"后面都有一个空格。

输入样例1:
2
结尾无空行
输出样例1:
no no
结尾无空行
输入样例2:
6
结尾无空行
输出样例2:
no no yes no no no
结尾无空行

  • 写回答

1条回答 默认 最新

  • 凯特烦恼kai 2021-10-30 13:30
    关注

    对第一个, 第二个单独判断, 从第三个开始就要等于前两个的和。
    代码如下:

    #include <stdio.h>
    int func(int num)
    {
        if(num%3 == 0)
            return 1;
        return 0;
    }
    int main()
    {
        int f0=7, f1=11;
        int tmp;
        int n;
        scanf("%d", &n);
        if(n<0 || n>=1000000) return -1;
        if(n == 1) printf("no");
        else if(n == 2) printf("no no");
        else if(n >= 3)
        {
            for(int i=0; i<n; i++)
            {
                if(i == 0) printf("no ");
                else if(i == 1) printf("no ");
                else if(i > 1)
                {
                    tmp = f0 + f1;
                    f0 = f1;
                    f1 = tmp;
                    printf("%s", func(f1)?"yes":"no");
                    if(i != n-1) printf(" ");
                }
            }
    
        }
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月17日
  • 已采纳回答 11月9日
  • 创建了问题 10月30日

悬赏问题

  • ¥15 cplex运行后参数报错是为什么
  • ¥15 之前不小心删了pycharm的文件,后面重新安装之后软件打不开了
  • ¥15 vue3获取动态宽度,刷新后动态宽度值为0
  • ¥15 升腾威讯云桌面V2.0.0摄像头问题
  • ¥15 关于Python的会计设计
  • ¥15 聚类分析 设计k-均值算法分类器,对一组二维模式向量进行分类。
  • ¥15 stm32c8t6工程,使用hal库
  • ¥15 找能接spark如图片的,可议价
  • ¥15 关于#单片机#的问题,请各位专家解答!
  • ¥15 博通raid 的写入速度很高也很低