用c语言完成有一个分数序列如下1,1,2,3,5,8,13,21,...,输出这个斐波那契数列前2 0项
时间: 2024-03-06 08:48:37 浏览: 19
好的,以下是实现这个功能的C语言代码:
```c
#include <stdio.h>
int main() {
int fib[20] = {1, 1}; // 定义一个长度为20的斐波拉契数列并初始化前两项
int i;
// 求出斐波拉契数列的前20项
for (i = 2; i < 20; i++) {
fib[i] = fib[i - 1] + fib[i - 2];
}
// 输出斐波拉契数列的前20项
for (i = 0; i < 20; i++) {
printf("%d ", fib[i]);
}
return 0;
}
```
运行程序后,即可输出该斐波拉契数列的前20项。
相关问题
用c语言完成有一个分数序列如下,输出这个斐波拉契数列前20项。 ... , 21 , 13 ,8 ,5 ,3 ,2 1 1 , ,
好的,以下是实现这个功能的C语言代码:
```c
#include <stdio.h>
int main() {
int fib[20] = {21, 13, 8, 5, 3, 2, 1, 1}; // 定义一个长度为20的斐波拉契数列并初始化前8项
int i;
// 求出斐波拉契数列的前20项
for (i = 8; i < 20; i++) {
fib[i] = fib[i - 1] + fib[i - 2];
}
// 输出斐波拉契数列的前20项
for (i = 0; i < 20; i++) {
printf("%d ", fib[i]);
}
return 0;
}
```
运行程序后,即可输出该斐波拉契数列的前20项。
在c语言中,有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。
可以用循环来逐项计算并累加,代码如下:
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
double sum = 0;
double a = 2, b = 1; // 第一项是 2/1
for (int i = 1; i <= n; i++) {
sum += a / b;
double tmp = b;
b = a;
a = a + tmp; // 下一项的分子是前两项之和,分母是前一项
}
printf("%.2f\n", sum);
return 0;
}
```
输入一个正整数 N,输出前 N 项之和,保留两位小数。例如,输入 6,输出为 11.48。