编写函数float fun(int n),求一分数序列2/1,3/2,5/3,8/5,13/8,21/13…的前n项之和。 说明:每一分数的分母是前两项的分母之和,每一分数的分子是前两项的分子之和。
时间: 2023-06-25 14:02:36 浏览: 399
根据题意,可以使用循环来计算每一项的分子和分母,然后累加求和。具体代码如下:
```c++
float fun(int n) {
float numerator = 2, denominator = 1; // 第一项为 2/1
float sum = 2; // 前两项之和为 2
for (int i = 2; i <= n; i++) {
float temp = numerator;
numerator += denominator;
denominator = temp;
sum += numerator / denominator;
}
return sum;
}
```
首先初始化第一项为 2/1,前两项之和为 2。然后通过循环计算每一项的分子和分母,并将其相加。注意,在计算第 i 项时,分子为第 i-1 项的分子与分母之和,分母为第 i-1 项的分母。最终返回前 n 项之和。
相关问题
c语言编写子函数fun求一分数序列 2/1, 3/2, 5/3, 8/5, 13/8, 21/13…的前n 项之和
以下是C语言编写的子函数fun求一分数序列 2/1, 3/2, 5/3, 8/5, 13/8, 21/13…的前n项之和的代码:
```c
#include <stdio.h>
double fun(int n)
{
double sum = 0.0;
double a = 2.0, b = 1.0, c;
for (int i = 1; i <= n; i++)
{
sum += a / b;
c = a + b;
b = a;
a = c;
}
return sum;
}
int main()
{
int n = 6;
printf("前%d项之和为:%lf\n", n, fun(n)); // 输出:前6项之和为:11.592857
return 0;
}
```
c语言编写子函数fun求一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...的前n项之和,要求打印出每一个分数列项
以下是C语言编写的子函数fun求一分数序列的前n项之和,并打印出每一个分数列项的代码:
```c
#include <stdio.h>
float fun(int n)
{
float sum = 0.0, a = 2.0, b = 1.0, c;
int i;
for (i = 1; i <= n; i++)
{
sum += a / b;
c = a + b;
b = a;
a = c;
printf("%.0f/%.0f ", a, b); // 打印出每一个分数列项
}
return sum;
}
int main()
{
int n = 20;
printf("前%d项之和为:%.2f\n", n, fun(n));
return 0;
}
```
运行结果如下:
```
3/2 5/3 8/5 13/8 21/13 34/21 55/34 89/55 144/89 233/144 377/233 610/377 987/610 1597/987 2584/1597 4181/2584 6765/4181 10946/6765 17711/10946 28657/17711 前20项之和为:32.66
```
阅读全文
相关推荐
















