这个程序是哪里出了问题

img

img


就是这个第二题,根据前几个分数的规律,推算出前20个分数的和不知道哪里又出了问题,结果不太对

以下答案来自ChatGPT提供:
这个数列是著名的斐波那契数列的一个变种,称为“斐波那契数列的黄金分割比例数列”。每个分数都是相邻两项斐波那契数的比值,即后一项除以前一项。

#include <stdio.h>

long long fibonacci(int n) {
    long long fib_sequence[n + 1];
    fib_sequence[0] = 1;
    fib_sequence[1] = 1;
    
    for (int i = 2; i <= n; i++) {
        fib_sequence[i] = fib_sequence[i - 1] + fib_sequence[i - 2];
    }
    
    return fib_sequence[n];
}

double golden_ratio_fractions_sum(int n) {
    double fractions_sum = 0.0;
    for (int i = 1; i <= n; i++) {
        double numerator = (double)fibonacci(i + 1);
        double denominator = (double)fibonacci(i);
        fractions_sum += numerator / denominator;
    }
    return fractions_sum;
}

int main() {
    int n = 20;
    double sum_of_fractions = golden_ratio_fractions_sum(n);
    printf("The sum of the first %d fractions is: %lf\n", n, sum_of_fractions);
    return 0;
}

16行的c应该放在循环外初始化