c语言求1+1+2+3+5+8+13前50项的和 流程图 50
3个回答
展开全部
这个题是斐波那列数吧 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];
}
通常的方法是先计算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];
}
追问
请问 流程图应该怎么画
追答
看代码写流程图就可以了,你根据代码执行写就可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询