用C语言编写求Fibonacci数列:1,1,2,3,5,8, ……的前20项。即第一、二项都是1,第三项以后的 每一项都是前两项的和。
时间: 2023-05-14 21:04:26 浏览: 666
以下是用C语言编写求Fibonacci数列前20项的代码:
#include <stdio.h>
int main() {
int n = 20, i;
int fib[20] = {1, 1};
for (i = 2; i < n; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
for (i = 0; i < n; i++) {
printf("%d ", fib[i]);
}
return 0;
}
输出结果为:1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765
相关问题
c语言中斐波那契额数列的数据:1,1,2,3,5,8,13……,已知前两个数据1,1,编写程序输出它的前20项。
在C语言中,你可以使用循环结构(如for或while)以及动态内存分配(若需要存储较大的数值)来生成并打印斐波那契数列的前20项。下面是一个简单的示例程序:
```c
#include <stdio.h>
#include <stdlib.h> // 需要这个头文件来处理malloc函数
int main() {
int n = 20; // 我们想要计算前20项
int *fibonacci = (int*) malloc((n + 1) * sizeof(int)); // 动态分配空间
fibonacci[0] = 1;
fibonacci[1] = 1;
for (int i = 2; i <= n; ++i) {
fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2]; // 计算下一个斐波那契数
}
printf("斐波那契数列的前20项:\n");
for (int i = 0; i < n; ++i) {
printf("%d ", fibonacci[i]);
}
printf("\n");
free(fibonacci); // 释放动态分配的空间
return 0;
}
```
当你运行这个程序,它会输出斐波那契数列的前20项。注意,在这个例子中,由于斐波那契数列的数值增长很快,可能会导致溢出问题,特别是在64位系统上,第47项之后就无法表示了。如果只对较小的项感兴趣,可以考虑优化算法或使用大数库。
已知Fibonacci数列:1,1,2,3,5,8,……,它满足下面公式: F(n)=1 (n=1,2) F(n)=F(n-1)+F(n-2) (n>2) 试求F(2)+F(4)+F(6)+……+F(50)值。 用C语言编写代码
好的,我们可以使用循环来求解F(2)+F(4)+F(6)+……+F(50)的值。以下是一个示例代码:
```c
#include <stdio.h>
int main()
{
int n = 50; // 最大项数
int sum = 0; // 和
int fib[n+1]; // 定义一个长度为n+1的数组来存储斐波那契数列的前n项
fib[1] = 1; // 第一项为1
fib[2] = 1; // 第二项为1
for (int i = 3; i <= n; i++) {
fib[i] = fib[i-1] + fib[i-2]; // 计算每一项的值
}
for (int i = 2; i <= n; i+=2) {
sum += fib[i]; // 求偶数项的和
}
printf("F(2)+F(4)+F(6)+...+F(50)的值为:%d\n", sum);
return 0;
}
```
这段代码中,先定义了一个长度为n+1的数组来存储斐波那契数列的前n项。通过循环计算每一项的值,然后再通过循环求出偶数项的和,最后输出F(2)+F(4)+F(6)+……+F(50)的值。
阅读全文