c语言 求1+1+2+3+5+8+13+…前50项的和 流程图 100

 我来答
JhonWaston
2016-04-15
知道答主
回答量:19
采纳率:0%
帮助的人:8.1万
展开全部

典型的斐波那契数列求和,如果不要求时间空间的话直接用循环就可以,流程图如下:

夜独行孤单
2016-04-15 · TA获得超过3460个赞
知道大有可为答主
回答量:2803
采纳率:82%
帮助的人:646万
展开全部
#include"iostream.h"
void main()
{int f1,f2,f=0,i;
f1=1;
f2=1;
for(i=3;i<=50;i++)
{f=f1+f2;f1=f2;f2=f;
cout<<f<<endl;}
}
这样就能输出前50个了,但是最好不要用int,因为后面的数越来越大,可能会溢出,所以用double比较好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiangjuan314
2016-04-15 · TA获得超过3.3万个赞
知道大有可为答主
回答量:2.9万
采纳率:0%
帮助的人:2917万
展开全部
这个题是斐波那列数吧 f(n)=f(n-1)+f(n-2);
通常的方法是先计算f再计算和(记为a),但其实可以直接推算a的,省了很多事
a(n)=a(n-1)+a(n-2)+1,其中a(1)=1,a(2)=2.
所以,现在编程效率高多了吧?
int a(unsigned int n)
{
int prevs[] = {0,1,2};
if (n <= 2)
{
return prevs[n];
}
else
{
for (int i = 2; i < n; i++)
{
prevs[0] = prevs[1];
prevs[1] = prevs[2];
prevs[2] = prevs[1] + prevs[0] + 1;
}
}

return prevs[2];
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2018-04-19
展开全部
int a1=1,a2=1,s=0,b=0;
for(int i=2;i<50;i++)//从第三项开始循环
{
b=a1+a2;
s=s+b;//和
if(a1>a2)
a2=b;
else
a1=b;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友627fd3d
2016-04-15 · TA获得超过1.9万个赞
知道大有可为答主
回答量:2.2万
采纳率:64%
帮助的人:2999万
展开全部
使用for循环,五十次就可以,每个数是前边两个数的和
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式