C语言,编写程序,输出斐波那契序列1, 1, 2, 3, 5, 8, 13,…的前50项,要求每行

如题所述

要求每行输出几个数字?先写个每行输出5个数字的吧~~

另外需要注意,50项斐波那契数列,数字将会非常大。所以需要用到无符号64位整型变量unsigned __int64。

#include <stdio.h>
int main(void) {
    int n;  // 输入一个数字 N
    int i;  // 第 i 个将要输出的斐波那契数
    unsigned __int64 current;  // 第 i 个斐波那契数的值
    unsigned __int64 next;  // 下一个(i+1)斐波那契数的值
    unsigned __int64 twoaway;  // 下下个(i+2)斐波那契数的值
    printf("您需要斐波那契数列的前几项?请输入: ");
    scanf("%d", &n);
    if (n<=0)
        printf("请输入正整数!\n");
    else {
        printf("前%d项斐波那契数列为:\n",n);
        next = current = 1;
        for (i=1; i<=n; i++) {
            printf("%I64u\t",current);
            if (i%5==0) printf("\n");// 控制每输出5个数换一行
            twoaway = current+next;
            current = next;
            next    = twoaway;
        }
        printf("\n");
    }
}

执行结果

温馨提示:答案为网友推荐,仅供参考
相似回答