c语言求fibonacci数列前20
时间: 2023-04-26 14:06:09 浏览: 172
我们可以使用递归或循环来求出Fibonacci数列的前20项。下面是递归的代码实现:
```
#include <stdio.h>
int fib(int n) {
if (n <= 2) {
return 1;
} else {
return fib(n - 1) + fib(n - 2);
}
}
int main() {
for (int i = 1; i <= 20; i++) {
printf("%d ", fib(i));
}
return 0;
}
```
这里是循环的代码实现:
```
#include <stdio.h>
int main() {
int a = 1, b = 1, c;
printf("%d ", a);
printf("%d ", b);
for (int i = 3; i <= 20; i++) {
c = a + b;
printf("%d ", c);
a = b;
b = c;
}
return 0;
}
```
运行这些代码将输出Fibonacci数列的前20项,即1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229.
相关问题
c语言求斐波那契数列前20项
以下是C语言求斐波那契数列前20项的代码和讲解:
```c
#include <stdio.h>
int main() {
int a1 = 1, a2 = 1;
printf("第1个斐波那契数为%d\n第2个斐波那契数为%d\n", a1, a2);
for (int i = 3; i <= 20; i++) {
int sum = a1 + a2;
printf("第%d个斐波那契数为%d\n", i, sum);
a1 = a2;
a2 = sum;
}
return 0;
}
```
这段代码中,我们首先定义了两个变量a1和a2,并将它们的值都初始化为1,因为斐波那契数列的前两个数都是1。然后我们使用for循环计算并输出了前20个斐波那契数。在每次循环中,我们先计算出当前的斐波那契数sum,然后将a2的值赋给a1,将sum的值赋给a2,以便下一次循环计算。
c语言求fibonacci数列前20项之和
在C语言中,我们可以使用循环结构来计算Fibonacci数列的前20项之和。Fibonacci数列是一个每个数字等于其前两个数字之和的数列,通常从0和1开始。下面是求和的一个简单示例:
```c
#include <stdio.h>
// 定义一个函数计算当前项并累加到总和
int fibonacci(int n, int* sum) {
if (n <= 1) {
return n;
} else {
int fib = fibonacci(n - 1, sum) + fibonacci(n - 2, sum);
*sum += fib; // 累加到总和
return fib;
}
}
int main() {
int sum = 0; // 初始化总和为0
int fib[21]; // 数组用于存储前20项
fib[0] = 0;
fib[1] = 1;
for (int i = 2; i < 20; i++) { // 计算前20项
fib[i] = fibonacci(i, &sum); // 使用递归方法
}
printf("Fibonacci数列前20项之和: %d\n", sum);
return 0;
}
```
在这个程序里,`fibonacci` 函数采用了动态规划的思想,通过传递指针 `sum` 实现了累加功能。注意,由于数组需要预先分配空间给所有21项(包括0和1),因此我们使用了一个大小为21的数组。
阅读全文
相关推荐














