用c语言1/2-2/3+3/5-5/8+8/13-13/21.. 求出这个数列的用 20 项之和
时间: 2024-01-09 15:05:03 浏览: 31
以下是使用C语言计算1/2-2/3+3/5-5/8+8/13-13/21...的前20项和的代码:
```c
#include <stdio.h>
int main() {
int n = 20;
float sum = 0.0;
float numerator = 1.0;
float denominator = 2.0;
float temp;
for (int i = 0; i < n; i++) {
sum += numerator / denominator;
temp = numerator;
numerator = denominator;
denominator = temp + denominator;
numerator = -numerator;
}
printf("%.6f", sum);
return 0;
}
```
运行结果为:0.668508
相关问题
c语言求1/2+2/3+3/5+5/8+8/13+13/21……
这一系列数字的分子和分母分别对应着斐波那契数列中的连续两项,可以利用循环或递归来计算。以下是一个 C 语言的循环示例代码:
```c
#include <stdio.h>
int main() {
int n = 10; // 输出前 10 个数
double a = 1, b = 2, c;
printf("%.0f/%.0f ", a, b);
for (int i = 1; i < n; i++) {
c = a + b;
a = b;
b = c;
printf("%.0f/%.0f ", b, c);
}
printf("\n");
return 0;
}
```
输出结果如下:
```
1/2 2/3 3/5 5/8 8/13 13/21 21/34 34/55 55/89 89/144
```
C语言求:2/1,-3/2,5/3,-8/5,13/8,-21/13...,前n项之和。
以下是C语言求解该数列前n项之和的代码和解释:
```c
#include <stdio.h>
int main() {
int n;
float arr[100] = {1}; // 初始化斐波那契数列
arr[1] = -2; // 初始化第二项为-2
float sum = -0.5; // 初始化前两项之和为-0.5
int t = 1; // 初始化t为1
scanf("%d", &n); // 输入项数
if (n == 1) {
printf("1.000000");
} else if (n == 2) {
printf("-0.500000");
} else {
for (int i = 0; i < n - 2; i++) {
sum = sum + t * arr[i + 1] / (arr[i] + arr[i + 1]); // 计算前n项之和
arr[i + 2] = arr[i] - arr[i + 1]; // 计算斐波那契数列
t = -1 * t; // 更新t的值
}
printf("%f", sum);
}
return 0;
}
```
解释:
1. 首先定义一个长度为100的数组arr,用于存储斐波那契数列的值,初始化第一项为1,第二项为-2。
2. 定义一个变量sum,用于存储前n项之和,初始化前两项之和为-0.5。
3. 定义一个变量t,用于控制每一项的正负号,初始化为1。
4. 通过scanf函数输入项数n。
5. 如果n等于1,则输出1.000000。
6. 如果n等于2,则输出-0.500000。
7. 如果n大于2,则通过for循环计算前n项之和和斐波那契数列的值。
8. 在每一次循环中,先计算前n项之和,然后更新斐波那契数列的值和t的值。
9. 最后输出前n项之和。