C语言实验——分数序列
Time Limit: 1000MS Memory Limit: 65536KB
Problem Description
有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, …编写程序求出这个序列的前n项之和。
Input
输入只有一个正整数n,1≤n≤10。
Output
输出该序列前n项和,结果保留小数后6位。
Example Input
3
Example Output
5.166667
Hint
Author
参考代码
#include<stdio.h>
int main()
{
double z1 = 2.0;
double m1 = 1.0;
double z2 = 3.0;
double m2 = 2.0;
double z3;
double m3;
double x;
double n;
double sum1 = 0.0;
double sum2 = 0.0;
int i;
sum1 = 2.0;
sum2 = 3.5;
scanf("%lf",&n);
if(n == 1)
{
printf("%.6lf\n",sum1);
}
else if(n == 2)
{
printf("%.6lf\n",sum2);
}
else
{
for(i = 0; i <= n - 3; i++)
{
z3 = z1 + z2;
m3 = m1 + m2;
x = z3 / m3;
sum2 = sum2 + x;
z1 = z2;
m1 = m2;
z2 = z3;
m2 = m3;
}
printf("%.6lf\n",sum2);
}
return 0;
}