方法一:使用一个数组
#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;
}
方法二:使用两个数组
#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;
}
方法三:
#include <stdio.h>
int main()
{
float a = 0;
float b = 0;
float s = 0;
int m = 0;
int n = 0;
int i = 0;
printf("请输入项数:\n");
scanf("%d", &n);
a = 2;
b = 1;
for (i = 1; i <= n; i++)
{
s=s+(a/b);
m = a + b;
b = a;
a = m;
}
printf("数列的前%d项之和为:%.2f", N,s);
return 0;
}