请问这个程序哪里错了 求菲波拉契数列前n项之和

问题描述:

请问这个程序哪里错了 求菲波拉契数列前n项之和
# include
int main ()
{
\x05int n,i,f1=1,f2=1,f3=2,sum=4,temp;
\x05
\x05for (;;)
\x05{
\x05\x05scanf ("%d",&n);
\x05\x05if (n==0)
\x05\x05\x05break;
\x05\x05if (n==1)
\x05\x05\x05printf ("%d\n",f1);
\x05\x05else if (n==2)
\x05\x05\x05printf("%d\n",f2+f1);
\x05\x05else if (n==3)
\x05\x05\x05printf ("%d\n",f1+f2+f3);
\x05\x05else
\x05\x05{
\x05\x05\x05for (i=4;i
1个回答 分类:综合 2014-10-27

问题解答:

我来补答
首先菲式数列是:1,1,2,3,5,8.所以n=2的时候,应该就输出f2,等于3的时候就输出f3,大于3之后按照你的算法就是输出f3,因为递归规律是当n>2时,F(n)=F(n-1)+F(n-2),当前项是前两项的和,而不是前面所有项的总和.你完全搞错了.
再问: 嗯 谢谢哈 我这题目不是只要求菲波拉契数列 是要求前面n项之和 我真不知道哪错了
再答: 哦,不好意思,我没看清题意。 你是想实现多次输入想要求的项数n,那么每次进行循环都要初始化f1,f2,f3,sum,也就是将这三个变量的赋值放在循环内
 
 
展开全文阅读
剩余:2000
也许感兴趣的知识