有一分数序列:2/1,3/2c
时间: 2023-11-15 09:07:18 浏览: 247
2021年人教版一年级数学上册第二次月考考试及答案2.pdf
这是一个分数序列,第一项为2/1,第二项为3/2,从第三项开始,每一项的分子等于前两项分子之和,分母等于前两项分母之和,即第三项为5/3,第四项为8/5,以此类推。现在有两种方法可以求出该分数序列的前N项之和:
方法一:使用一个数组,先计算出第一项和第二项的和,然后用循环计算出后面N-2项的和,最后将所有项的和相加即可。
方法二:使用两个数组,分别存储分子和分母,先计算出前N项的分子和分母,然后将每一项的分子除以分母相加即可得到前N项之和。
下面是两种方法的代码实现:
方法一:
```c
#include <stdio.h>
int main() {
int N = 0;
int i = 0;
int a[1000] = { 0 }; double sum = 0;
a[0] = 1;
a[1] = 2;
sum = 1.0 * a[1] / a[0]; //先算第一项的和
printf("请输入项数N:\n");
scanf("%d", &N);
for (i = 2; i <= N; i++) {
a[i] = a[i - 1] + a[i - 2]; //从第三项开始分子与分母分别等于前两项分子、分母之和
sum += (a[i] * 1.0 / a[i - 1]); //且分子与分母相差一个项数
}
printf("数列的前%d项之和sum=%.2f\n", N, sum);
return 0;
}
```
方法二:
```c
#include<stdio.h>
int main() {
int i = 0;
int a[1000] = { 0 };
int b[1000] = { 0 };
float num = 0;
int N = 0;
a[0] = 2;
a[1] = 3;
b[0] = 1;
b[1] = 2;
printf("请输入项数 N\n");
scanf("%d", &N);
for (i = 2; i < N; i++) {
a[i] = a[i - 1] + a[i - 2];
b[i] = b[i - 1] + b[i - 2];
}
for (i = 0; i < N; i++) {
num += (float)a[i] / b[i];
}
printf("数列的前%d项之和为:%.2f ", N,num);
return 0;
}
```
阅读全文