Arehen 发表于 2023-11-4 22:34:09

c语言

求斐波那契数列的前40项和

isdkz 发表于 2023-11-4 22:34:19

斐波那契数列是指从第三项开始,每一项都是前两项的和,即f(n)=f(n-1)+f(n-2),其中f(1)=1,f(2)=1。

以下是求斐波那契数列前40项和的C语言代码:

#include <stdio.h>

int main() {
    int i;
    long long fib;
    long long sum = 0;
    fib = fib = 1; // 初始化前两项
    for (i = 2; i < 40; i++) {
      fib[ i] = fib + fib; // 计算第i项
    }
    for (i = 0; i < 40; i++) {
      sum += fib[ i]; // 累加前40项
    }
    printf("斐波那契数列前40项的和为:%lld\n", sum);
    return 0;
}


解释:

首先定义一个长度为40的数组fib来存储斐波那契数列的前40项,同时定义一个变量sum来存储前40项的和。

然后初始化数组的前两项为1,接着使用for循环计算第3到第40项的值,每一项的值都是前两项的和。

最后使用另一个for循环累加前40项的值,输出结果即可。注意使用long long类型来存储数列的值,避免溢出。

Mike_python小 发表于 2023-11-4 22:35:03

计算斐波那契数列的前40项和,可以使用循环或递归的方式实现。下面是使用循环的方法:

++
#include <stdio.h>

int main() {
    int n = 40; // 要计算的斐波那契数列的项数
    long long int sum = 0;
    long long int a = 0;
    long long int b = 1;

    for (int i = 0; i < n; i++) {
      long long int temp = a;
      a = b;
      b = temp + b;
      sum += a;
    }

    printf("斐波那契数列的前%d项和为:%lld\n", n, sum);

    return 0;
}


使用循环的方法较为高效,因为它避免了递归过程中的重复计算。该代码使用sum变量来保存前40项的和,a和b分别表示当前项和下一项,在循环中通过交换值的方式更新这两个变量。

运行以上代码,会输出斐波那契数列的前40项和。希望对你有帮助!如果还有其他问题,请随时提问。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: c语言