新手关于分数序列的求解
求分数序列:2/1,3/2,5/3,8/5,13/8,21/13,……前20项之和。我的做法
#include<stdio.h>
void main()
{
int i,t;
float a=2,b=1,s=2;
for(i=1;i<20;i++)
{
a=a+b;b=++b;
s=s+a/b;
}
printf("%f\n",s);
}
还有就是我看到分子和分母都是斐波那契数列,所以有试了下面一个程序,但是还是错了
#include<stdio.h>
void main()
{
int i;
float f1=2,f2=3,k1=1,k2=2,s=2;
for(i=1;i<10;i++)
{
f1=f1+f2;
f2=f2+f1;
k1=k2+k1;
k2=k1+k2;
s=(k1/f1)+(k2/f2)+s;
}
printf("%f\n",s);
}
正解和我的第一种做法多了一个中间变量
#include<stdio.h>
void main()
{
int i,t;
float a=2,b=1,s=0;
for(i=1;i<=20;i++)
{
s=s+a/b;
t=a;
a=a+b;
b=t;
}
printf("%f\n",s);
}
问题可能问的很弱智,轻喷。。。
为什么我的程序会错?错在哪里?谢谢
[ 本帖最后由 我就是怪蜀黍 于 2013-4-11 23:09 编辑 ]