首页 > 解决方案 > 如何在 C 中纠正这个斐波那契数列程序中的错误?

问题描述

#include<stdio.h>

int main() {

    int sum;
    int n,num1,num2;
    printf("Enter a number:");
    scanf_s("%d", &n);

    if (n >= 1)
        num1 = 1;
    if (n >= 2) {
        num2 = 1;
        sum = num1 + num2;
        printf("%d\n", sum);
    }
    int say = 2;
    while (say <= 10) {
        if (n >= 3) {
            sum = sum + n;
            printf("%d\n", sum);
            n++;
            say++;
        }
        if (say== 10)
            break;
    }
}

在输入 10 的输入数字时,我找不到错误程序像这样工作

2 
12 
23
35
48
62
77
93
110

标签: cfibonacci

解决方案


这看起来有点像,但不像创建斐波那契数列的代码。看看这个实现。

#include <stdio.h>

unsigned long long a = 0;
unsigned long long b = 1;

for(int i = 0;i < 50; i++){
    unsigned long long old_b = b;
    b += a;
    a = old_b;
    printf("%llu\n", b);
}

斐波那契数列只是简单地将前一个值连续添加到当前值。所以你只需要跟踪以前的值。

斐波那契


推荐阅读