C语言有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数。
时间: 2023-12-29 13:05:35 浏览: 203
C语言求分数序列前N项之和的代码如下:
```c
#include <stdio.h>
float fractionSum(int n) {
float sum = 0;
float numerator = 2, denominator = 1;
float temp;
for (int i = 0; i < n; i++) {
sum += numerator / denominator;
temp = numerator;
numerator = numerator + denominator;
denominator = temp;
}
return sum;
}
int main() {
int N = 20;
float sum = fractionSum(N);
printf("The sum of the first %d terms in the fraction sequence is %.2f\n", N, sum);
return 0;
}
```
运行结果:
```
The sum of the first 20 terms in the fraction sequence is 32.66
```
相关问题
用c语言有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...编程求出这个数列的前20项之和
以下是使用C语言实现的代码,计算这个分数序列的前20项之和:
```c
#include <stdio.h>
int main() {
double sum = 0.0, a = 2.0, b = 1.0, temp;
int i;
for (i = 1; i <= 20; i++) {
sum += a / b;
temp = a;
a = a + b;
b = temp;
}
printf("前20项之和为:%lf\n", sum);
return 0;
}
```
运行结果为:
```
前20项之和为:32.660260
```
注意:由于这个分数序列的分子和分母都很大,使用`double`类型来存储结果较为合适。同时,为了避免除数为0的情况,需要在计算每一项时,将分子和分母的值交换。
C语言有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13....求出这个数列的前N项之和,保留两位小数
分数序列的通项公式为:$a_n = \dfrac{F_{n+1}}{F_n}$,其中$F_n$为斐波那契数列第n项。
因此,可以先写一个函数来求斐波那契数列的第n项:
```c
int fibonacci(int n)
{
if (n <= 0)
return 0;
if (n == 1)
return 1;
return fibonacci(n-1) + fibonacci(n-2);
}
```
然后,再写一个函数来求前N项之和:
```c
double fibonacci_sum(int n)
{
double sum = 0;
for (int i = 1; i <= n; i++)
{
sum += (double)fibonacci(i+1) / (double)fibonacci(i);
}
return sum;
}
```
最后,在main函数中调用上述两个函数即可:
```c
#include <stdio.h>
int fibonacci(int n)
{
if (n <= 0)
return 0;
if (n == 1)
return 1;
return fibonacci(n-1) + fibonacci(n-2);
}
double fibonacci_sum(int n)
{
double sum = 0;
for (int i = 1; i <= n; i++)
{
sum += (double)fibonacci(i+1) / (double)fibonacci(i);
}
return sum;
}
int main()
{
int n;
printf("请输入要求的项数:");
scanf("%d", &n);
printf("前%d项之和为:%.2f", n, fibonacci_sum(n));
return 0;
}
```
阅读全文