C语言编写一个程序:输入一个正整数n。计算输出序列2/1,3/2,5/3,8/5,13/8,21/13,……的前n项和,结果保留三位小数
时间: 2023-12-13 16:05:16 浏览: 95
#include<stdio.h>
int main()
{
int n, i;
double a = 2, b = 1, sum = 0, c;
printf("请输入正整数n:");
scanf("%d", &n);
for(i = 1; i <= n; i++)
{
sum += a / b;
c = a;
a = a + b;
b = c;
}
printf("前%d项和为:%.3lf", n, sum);
return 0;
}
相关问题
c语言c语言写本关任务:编写一个分式序列和的程序。 求序列和:输入一个正整数n,输出 1 2 + 2 3 + 3 5 + 5 8 +…的前n项之和。结果保留4位小数。
好的,我了解你的要求。以下是代码实现:
```c
#include <stdio.h>
int main() {
int n;
double a = 1, b = 2, sum = 0;
printf("请输入一个正整数n:");
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
sum += b / a;
double temp = b;
b = a + b;
a = temp;
}
printf("分式序列和为:%.4lf", sum);
return 0;
}
```
运行程序,输入一个正整数n,即可得到分式序列和的值,保留4位小数。希望能够帮助到你。
c语言 有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, …编写程序求出这个序列的前n项之和。 输入格式: 输入只有一个正整数n,1≤n≤10。 输出格式: 请在这里描述输出格式。例如:对每一组输入,在一行中输出A+B的值。
你可以使用C语言编写一个程序来计算这个斐波那契数列(实际上这里是分数序列,不过它们之间的规律类似)的前n项和。由于每个分数的分子都是前两个分数相加的结果,我们可以采用动态规划的方式,用数组存储之前计算过的分子分母。
以下是算法步骤和部分代码示例:
1. 创建两个数组`fractions`和`sums`,分别用于存储当前项的分数和它们的和。
2. 初始化第一项的分子分母为2和1,并将它们加入到数组中,同时设置首项和为1。
3. 使用循环从第二项开始,对于每项,计算分子(前两项分子之和)和分母(当前分母),然后更新总和。
4. 每次迭代后,将新的分数添加到数组`fractions`,并将总和加到`sums`对应位置。
5. 循环结束后,数组`sums[n-1]`就是前n项的和。
```c
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
if (n <= 0) {
printf("请输入一个正整数。\n");
return 0;
}
// 初始化数组
int fractions[10][2];
fractions[0][0] = 2;
fractions[0][1] = 1;
sums[0] = 1; // 前一项的和
for (int i = 1; i < n; ++i) {
int next_fraction[2];
next_fraction[0] = fractions[i-1][0] + fractions[i-1][1]; // 分子
next_fraction[1] = fractions[i-1][1]; // 分母
fractions[i][0] = next_fraction[0];
fractions[i][1] = next_fraction[1];
sums[i] = sums[i-1] + fractions[i][0]; // 更新总和
}
printf("分数序列的前 %d 项和为: %d/%d\n", n, sums[n-1], fractions[n-1][1]);
return 0;
}
```
阅读全文