给我写一个c语言程序,斐波那契数列前n项求和
时间: 2024-09-21 11:11:08 浏览: 57
当然可以。在C语言中,我们可以编写一个函数来计算斐波那契数列的前n项之和。这里是一个简单的示例:
```c
#include <stdio.h>
// 计算斐波那契数列第n项
int fibonacci(int n) {
if (n <= 0)
return 0;
else if (n == 1 || n == 2)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
// 斐波那契数列前n项和
long long fib_sum(int n) {
int sum = 0;
for (int i = 1; i <= n; ++i) {
sum += fibonacci(i);
}
return sum;
}
int main() {
int n;
printf("请输入斐波那契数列的项数: ");
scanf("%d", &n);
// 检查输入是否合法
if (n <= 0) {
printf("输入错误,n应大于0。\n");
return 1;
}
long long result = fib_sum(n);
printf("斐波那契数列前%d项的和为: %lld\n", n, result);
return 0;
}
```
这个程序首先定义了递归函数`fibonacci`用于计算单个斐波那契数,然后用循环在`fib_sum`函数中累加前n项的值。请注意,由于递归会涉及大量的重复计算,对于大的n值,这种方法效率不高。实际应用中可能会考虑动态规划等优化策略。
阅读全文