C语言求1+1+2+3+5+8+....前20项的和求编程 10
13个回答
展开全部
#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;}
}
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
展开全部
这个题是斐波那列数吧 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];
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=3,a=1,b=1;
int count=0;
//printf("1 1\n2 1\n");
for (count=a+b,i=3;i<=20;i++){
if(a>=b){
b=a+b;
count+=b;
//printf("%d %d\n",i, b);
}
else{
a=a+b;
count+=a;
//printf("%d %d\n",i, a);
}
}
printf("%d\n",count);
return 0;
}
结果:17710
注释掉的两句是为了看结果是否正确的,如果不注掉的话,打印出:
1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34
10 55
11 89
12 144
13 233
14 377
15 610
16 987
17 1597
18 2584
19 4181
20 6765
17710
#include <stdlib.h>
int main()
{
int i=3,a=1,b=1;
int count=0;
//printf("1 1\n2 1\n");
for (count=a+b,i=3;i<=20;i++){
if(a>=b){
b=a+b;
count+=b;
//printf("%d %d\n",i, b);
}
else{
a=a+b;
count+=a;
//printf("%d %d\n",i, a);
}
}
printf("%d\n",count);
return 0;
}
结果:17710
注释掉的两句是为了看结果是否正确的,如果不注掉的话,打印出:
1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34
10 55
11 89
12 144
13 233
14 377
15 610
16 987
17 1597
18 2584
19 4181
20 6765
17710
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.首先弄清楚这组分数序列的规律:
从第二个数开始
分子=前一个数的分子+分母
分母=前一个数的分子
2.需求是前20项之和,因此循环20-1次相加是必然的.
3.第一个数初始化为x=2,y=1
4.从第二个数开始:
分子x=x+y
分母y=x
由于x的值发生变化,因此中间用变量a复制一下.
5.重复上面的操作,直到循环结束.
从第二个数开始
分子=前一个数的分子+分母
分母=前一个数的分子
2.需求是前20项之和,因此循环20-1次相加是必然的.
3.第一个数初始化为x=2,y=1
4.从第二个数开始:
分子x=x+y
分母y=x
由于x的值发生变化,因此中间用变量a复制一下.
5.重复上面的操作,直到循环结束.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
写程序要抓住关键点,抓住规律!比如这里说的
约束条件:
1、前20项
2、前两项的和等于后一项的值
最好通过自己的思考写出程序,这样才会进步的更快!多思考!这个程序不难的!加油吧!
约束条件:
1、前20项
2、前两项的和等于后一项的值
最好通过自己的思考写出程序,这样才会进步的更快!多思考!这个程序不难的!加油吧!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询