C语言用数组求斐波那契数列第20项
时间: 2024-12-17 21:39:14 浏览: 2
在C语言中,求斐波那契数列的第20项,可以先创建一个数组来存储已经计算过的斐波那契数,因为直接递归计算会非常慢。下面是一个简单的示例代码:
```c
#include <stdio.h>
// 动态数组大小,这里设置为20+1来储存前20项
#define SIZE 21
int fib[SIZE]; // 初始化斐波那契数组
// 计算并存储斐波那契数列
void calculateFibonacci(int n) {
if (n <= 0) return;
fib[0] = 0; // 第一项
if (n == 1) {
fib[1] = 1; // 第二项
} else {
fib[1] = 1; // 处理第一和第二项
for (int i = 2; i < n; i++) {
fib[i] = fib[i - 1] + fib[i - 2]; // 递推公式
}
}
}
int main() {
int nthTerm = 20;
calculateFibonacci(nthTerm);
printf("斐波那契数列的第%dn项是:%d\n", nthTerm, fib[nthTerm - 1]); // 注意索引从0开始
return 0;
}
```
这个程序首先初始化一个`fib`数组,然后通过循环计算并存储斐波那契数列的每一项。最后,从数组中获取第20项并输出。
相关问题
C语言用数组求Fibonacci数列前n(10<=n<=20)个数
在C语言中,我们可以使用数组来存储Fibonacci数列的前n个数。Fibonacci数列的特点是从第0项开始,每一项都是前两项之和。下面是一个简单的示例程序,用于计算并打印出前n个Fibonacci数:
```c
#include <stdio.h>
// 定义数组来存储Fibonacci数列
int fibonacci[21]; // 最大长度设为21,因为我们要包括0到第20项
void fibonacci_sequence(int n) {
int i;
// 设置初始值
fibonacci[0] = 0; // 第0项
fibonacci[1] = 1; // 第1项
// 计算并填充数组
for (i = 2; i <= n; i++) {
fibonacci[i] = fibonacci[i - 2];
}
}
int main() {
int n = 10; // 输入n的值,这里假设n=10
if (n >= 10 && n <= 20) {
fibonacci_sequence(n); // 调用函数生成Fibonacci序列
printf("Fibonacci数列的前%d个数是:\n", n);
for (i = 0; i < n; i++) {
printf("%d ", fibonacci[i]); // 打印数组元素
}
printf("\n");
} else {
printf("输入的数值不在10到20之间,请重新输入。\n");
}
return 0;
}
```
这个程序首先定义了一个大小为21的数组`fibonacci`,然后通过循环计算并存储Fibonacci数列的前n个数。在`main()`函数中,你可以将变量`n`设置为你想要的值(在这里是10),然后它会打印出相应的Fibonacci数列。
用c语言编写数组求斐波那契数列问题 用数组来求斐波那契数列问题前20项 输入说明: 输出说明: 斐波那契数列问题前20项
```c
#include <stdio.h>
int main()
{
int n = 20; // 求前20项
int fib[20] = {0, 1}; // 初始化前两项
for (int i = 2; i < n; i++) {
fib[i] = fib[i-1] + fib[i-2]; // 计算第i项
}
for (int i = 0; i < n; i++) {
printf("%d ", fib[i]); // 输出前20项
}
return 0;
}
```
输入说明:无需输入,直接运行程序即可。
输出说明:上述程序将输出斐波那契数列问题前20项,即:0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181。
阅读全文