C语言有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13....求出这个数列的前N项之和,保留两位小数
时间: 2023-12-13 13:59:49 浏览: 81
分数序列的通项公式为:$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;
}
```
阅读全文