C语言求斐波那契数列的和
时间: 2024-01-02 07:01:42 浏览: 71
#include <stdio.h>
int main()
{
int i, n, sum = 0, fib1 = 0, fib2 = 1, fib;
printf("请输入n:");
scanf("%d", &n);
for(i = 1; i <= n; i++)
{
fib = fib1 + fib2;
fib1 = fib2;
fib2 = fib;
sum += fib1;
}
printf("斐波那契数列前%d项的和为:%d", n, sum);
return 0;
}
相关问题
c语言求斐波那契数列平方和
在C语言中,求斐波那契数列的平方和可以通过循环结构或者递归函数来实现。这里我将展示一种简单的迭代方法,因为递归对于大数据可能会导致栈溢出。
```c
#include <stdio.h>
// 计算斐波那契数列的第n项
int fibonacci(int n) {
if (n <= 0) return 0;
else if (n == 1) return 1;
else {
int fib_n_1 = 0, fib_n_2 = 1;
for (int i = 2; i <= n; i++) {
int next_fib = fib_n_1 + fib_n_2;
fib_n_1 = fib_n_2;
fib_n_2 = next_fib;
}
return fib_n_2;
}
}
// 求斐波那契数列前n项的平方和
long long sum_of_squares(int n) {
long long sum = 0;
for (int i = 1; i <= n; i++) {
int fib = fibonacci(i);
sum += fab * fab;
}
return sum;
}
int main() {
int n;
printf("请输入要计算的斐波那契数列项数:");
scanf("%d", &n);
printf("斐波那契数列前 %d 项的平方和是:%lld\n", n, sum_of_squares(n));
return 0;
}
```
在这个程序中,首先定义了一个`fibonacci`函数用于计算第n项的斐波那契值,然后`sum_of_squares`函数遍历1到n,将每一项的平方累加到总和中。最后,在主函数中获取用户输入并输出结果。
c语言求斐波那契数列
在C语言中,斐波那契数列是一个经典的递归或循环计算的问题。下面我会演示两个常见的方法:递归和动态规划。
### 1. 递归法
```c
#include <stdio.h>
int fibonacci_recursive(int n) {
if (n <= 1)
return n;
else
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2);
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
if (num < 0) {
printf("错误:输入的数值必须是非负整数。\n");
} else {
printf("第%d个斐波那契数是:%d\n", num, fibonacci_recursive(num));
}
return 0;
}
```
### 2. 动态规划法(更高效)
```c
#include <stdio.h>
// 使用数组存储已经计算过的值
int fib[] = {0, 1}; // 初始化前两个斐波那契数
size_t len = 2; // 当前斐波那契数的数量
int fibonacci_dp(int n) {
if (n >= len) {
fib[len] = fib[len - 1] + fib[len - 2];
len++;
}
return fib[n];
}
int main() {
int num;
printf("请输入一个正整数:");
scanf("%d", &num);
if (num < 0) {
printf("错误:输入的数值必须是非负整数。\n");
} else {
printf("第%d个斐波那契数是:%d\n", num, fibonacci_dp(num));
}
return 0;
}
```
阅读全文