C语言求:2/1,-3/2,5/3,-8/5,13/8,-21/13...,前n项之和。
时间: 2024-01-30 07:02:35 浏览: 75
以下是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项之和。
阅读全文