C语言:求斐波那契数列前n项的和

这篇文章介绍了如何使用C语言编写一个程序,通过用户输入n值,计算并输出前n位斐波那契数列的和。通过for循环实现了递推计算,展示了基础的数值计算在编程中的应用。
#include <stdio.h>

int main()
{
    int a, b, sum;
    sum = 1;
    a = 1;
    b = 1;

    int n;
    printf("请输入求前多少位斐波那契数列: \n");
    scanf("%d", &n);

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

    printf("前%d位斐波那契数列之和为%d\n",n ,sum);

}

 

 

斐波那契数列N有多种方法,以下从不同编程语言角度来介绍: ### Python语言 - **方法一**:通过迭代的方式,利用变量`a``b`保存的值,依次计算后续并添加到列表中。 ```python n = int(input()) a, b = 1, 1 feibo = [1, 1] for i in range(n - 2): c = a + b feibo.append(c) a, b = b, c print(feibo) ``` - **方法二**:同样是迭代,但直接利用列表中已有的元素来计算新元素。 ```python n = int(input()) a, b = 1, 1 feibo = [1, 1] for i in range(2, n): feibo.append(feibo[i - 1] + feibo[i - 2]) print(feibo) ``` - **方法三**:借助列表推导式`append`方法计算后续。 ```python n = int(input()) fibo = [1, 1] temp = [fibo.append(fibo[-1] + fibo[-2]) for i in range(n - 2)] print(fibo) ``` ### C语言 通过函数`sum`来计算斐波那契数列n,初始化,从第三开始循环计算并累加。 ```c #include <stdio.h> // 函数sum用于计算斐波那契数列n long sum(int n ) { // 初始化斐波那契数列为1 int fib1 = 1, fib2 = 1; // fibNext用于存储下一个斐波那契数,sum初始化为2() int fibNext, sum = 2; // 从第三开始计算斐波那契数列,并累加到sum中 for(int i = 3; i <= n; i++) { // 计算下一个斐波那契数 fibNext = fib1 + fib2; // 更新fib1fib2,为下一次计算做准备 fib1 = fib2; fib2 = fibNext; // 将新生成的斐波那契数累加到总sum中 sum += fibNext; } // 返回斐波那契数列n return sum; } int main() { // 定义变量n用于存储用户输入的数 long int n; // 从用户输入获取数n scanf("%ld", &n); // 调用sum函数计算并输出斐波那契数列n printf("sum=%ld\n", sum(n)); return 0; } ``` ### Java语言 使用递归算法计算斐波那契数列,通过`fib1`函数递归调用自身来计算第n的值,可循环调用该函数获取N。 ```java public class Test { public static int fib1(int n) { if (n == 1) { return 1; } if (n == 2) { return 2; } return fib1(n - 1) + fib1(n - 2); } public static void main(String[] args) { // 可以通过循环调用fib1函数获取N int N = 6; for (int i = 1; i <= N; i++) { System.out.print(fib1(i) + " "); } } } ```
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值