有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…编写程序,求出该数列前20项之

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…编写程序,求出该数列前20项之和(感谢之前哪些大神的帮助,本人大一新生,没学太复杂的,请各位大神,使用for语句,不要弄些我们没学到的,感激不进)拜拖各位了

第1个回答  2016-01-14
float Column(int length); 
int main(int argc, char* argv[])
{  
int length;
scanf("%d",&length);
float sum= Column(length);
printf("%f\n",sum);
return 0;
}
float Column(int length)
{
// 分子 分母
int numerator=2,denominator=1;
float sum=0;
for(int i=0;i<length;i++)
{
int tmp=numerator;
sum+=(numerator/(denominator*1.0F));
numerator+=denominator;
denominator=tmp;
}
return sum;
}

追问

还是出现了一些我们没学到的函数,还能不能再简化

追答

你学的是什么语言?

追问

应该属于c++

追答

你给我说一下你那句没看懂 ,我再给你简化一下

追问

没有几个看懂的,就看懂了float

float sum= Column(length);
float Column(int length)
int tmp=numerator;
sum+=(numerator/(denominator*1.0F) numerator+=denominator;
denominator=tmp;

我刚学,这些都没有接触过

实在不行就算了,辛苦了

追答//程序入口函数
int main(int argc, char* argv[])
{  
//这个是分子变量
int numerator=2;
//这个是分母变量
int denominator=1;
//这个是列项式的和变量
float sum=0;
//这个是for循环20次,每次计算一个项列式的值,然后累加到sum中
for(int i=0;i<20;i++)
{
//将上一个分子的值临时存起来,因为到下面值会变化的
int tmp=numerator;
//计算单个项即分子除以分母
int sub=numerator/(denominator*1.0F)
//累加将每项值累加到sum中
sum =sum+sub;
//根据规律下一分子=上一个分子与分母的和
numerator=numerator+denominator;
//根据规律下一分母=上一个分子的值
denominator=tmp;
}
//这个是输出值 sum 列项式的和 C上有这个函数的,你看看书了解一下
printf("%f\n",sum);
///Mian函数的正常返回
return 0;
}

追问

十分感谢,虽然我们没学,但是,你的付出让我十分感动。再次向你表示衷心的感谢

本回答被提问者采纳
相似回答