算法Word格式.docx
《算法Word格式.docx》由会员分享,可在线阅读,更多相关《算法Word格式.docx(9页珍藏版)》请在冰点文库上搜索。
![算法Word格式.docx](https://file1.bingdoc.com/fileroot1/2023-5/8/8bc629c7-c5ec-4f32-bbad-8afa07d84099/8bc629c7-c5ec-4f32-bbad-8afa07d840991.gif)
-'
*'
/'
};
voidfun(floatn[],charch[][50],intm)
{
intx[2],y,i,j;
floatnum[4];
charcc[4][50];
if(m==1)
if(fabs(n[0]-24.0)<
0.0001)
{
printf("
\n%s=24"
ch[0]);
getch();
exit(0);
}
}
else
for(x[0]=0;
x[0]<
m;
x[0]++)
for(x[1]=0;
x[1]<
x[1]++)
if(x[1]==x[0])continue;
for(y=0;
y<
4;
y++)
switch(y)
case0:
num[0]=n[x[0]]+n[x[1]];
break;
case1:
num[0]=n[x[0]]-n[x[1]];
case2:
num[0]=n[x[0]]*n[x[1]];
case3:
if(n[x[1]]==0)break;
num[0]=n[x[0]]/n[x[1]];
default:
if(y!
=3||n[x[1]]!
=0)
sprintf(cc[0],"
(%s%c%s)"
ch[x[0]],sig[y],ch[x[1]]);
for(i=0,j=1;
i<
i++)
if(i!
=x[0]&
&
i!
=x[1])
num[j]=n[i];
strcpy(cc[j],ch[i]);
j++;
fun(num,cc,m-1);
/***********************/
main()
floatnum[4];
inti;
charcx[4][50];
clrscr();
Pleaseinput4integers:
"
);
for(i=0;
scanf("
%f"
&
num[i]);
sprintf(cx[i],"
%d"
(int)num[i]);
fun(num,cx,4);
noanswer!
2、解决物理问题。
题目:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在第10次落地时,共经过多少米?
第10次反弹多高?
3、1.程序分析:
见下面注释
4、2.程序源代码:
floatsn=100.0,hn=sn/2;
intn;
for(n=2;
n<
=10;
n++)
{
sn=sn+2*hn;
/*第n次落地时共经过的米数*/
hn=hn/2;
/*第n次反跳高度*/
}
printf("
thetotalofroadis%f\n"
sn);
thetenthis%fmeter\n"
hn);
getch()
3、数学算法。
将一个正整数分解质因数。
例如:
输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<
>
k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,
重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
2.程序源代码:
/*zhengintisdividedyinshu*/
intn,i;
\npleaseinputanumber:
\n"
scanf("
n);
%d="
n);
for(i=2;
=n;
while(n!
=i)
{
if(n%i==0)
{printf("
%d*"
i);
n=n/i;
}
else
break;
}
getch();
问题:
电脑与人脑的思维方式有什么不同?
为什么要学习算法?
我的思路:
电脑运算的高速度和超强的记忆能力是人脑无法比拟的,但人脑能够推理、归纳、判断、分析、计算……这些电脑都不会,电脑只会算术运算与逻辑运算.要让电脑为我们做事,就要把我们的意图转成电脑能懂的语法,这就需要算法设计.计算机解题的核心是算法设计。
将来你们有些人是要走上计算机程序员的岗位,那样必定要求你们精通算法,同样,不是做这些职业的人也一定要明白算法的设计来,因为算法不仅仅只的是计算机上的程序运行步骤,还是达成任何目的的合理的做法设计。
4、实际问题
一个人带三只狼和三只羚羊过河.只有一条船,同船可以容一个人和两只动物.没有人在的时候,如果狼的数量不少于羚羊的数量,狼就会吃掉羚羊.
(1)设计安全渡河的算法;
(2)思考每一步算法所遵循的相同原则是什么.
解析:
(1)S1 人带两只狼过河.
S2 人自己返回.
S3 人带两只羚羊过河.
S4 人带一只狼返回.
S5 人带一只羚羊过河.
S6 人自己返回.
S7 人带两只狼过河.
(2)在人运送动物过河的过程中,人离开岸边时必须保证每个岸边的羚羊数目要大于狼的数目.
点评:
这是一个实际问题,生活中解决任何问题都需要算法,我们要在处理实际问题的过程中理解算法的含义,体会算法设计的思想方法.
问题1:
两个大人和两个小孩一起渡河,渡口只有一条小船,每次只能渡1个大人或两个小孩,他们四人都会划船,但都不会游泳.同学们现在想一想,他们怎样渡过河去?
请写一写你的渡河方案.
因为一次只能渡过一个大人,而船还要回来渡其他人,所以只能让两个小孩先过河,渡河的方法与步骤为
第一步 两个小孩同船渡过河去;
第二步 一个小孩划船回来;
第三步 一个大人独自划船渡过河去;
第四步 对岸的小孩划船回来;
第五步 两个小孩再同船渡过河去;
第六步 一个小孩划船回来;
第七步 余下的一个大人独自划船渡过河去;
第八步 对岸的小孩划船回来;
第九步 两个小孩再同船渡过河去.
“鸡兔同笼”是我国隋朝时期的数学著作《孙子算经》中的一个有趣而具有深远影响的题目:
“今有雉兔同笼,上有三十五头,下有九十四足.问雉兔各几何.”
用方程组的思想不难解决这一问题,请你设计一个这类问题的通用算法.
答案:
鸡兔同笼,设鸡兔总头数为H,总脚数为F,求鸡兔各有多少只.算法如下:
第一步 输入总头数H,总脚数F;
第二步 计算鸡的个数x=(4
H-F)/2;
第三步 计算兔的个数y=(F-2
H)/2;
第四步 输出x,y.
一个算法应具有以下五个重要特征:
(1)有穷性:
一个算法必须保证执行有限步之后结束;
(2)确切性:
算法的每一步骤必须有确切定义;
(3)可行性:
算法原则上能够精确地运行,而且人们用笔和纸做有限次即可完成;
(4)输入:
一个算法有0个或多个输入,以刻划运算对象的初始条件.所谓0个输入是指算法本身定出了初始条件;
(5)输出:
一个算法有1个或多个输出,以反映对输入数据加工后的结果.没有输出的算法是毫无意义的.
课时小结
要正确地设计一个算法就需要掌握算法的五个特性:
①有穷性,算法中执行的步骤总是有限次数的,不能无休止地执行下去.
②确切性,算法中的每一步操作的内容和顺序必须含义确切,不能有二义性.
③可行性,算法中的每一步操作都必须是可执行的,也就是说算法中的每一步都能通过手工和机器在有限时间内完成,这称之为有效性.
④输入,一个算法中有零个或多个输入.这些输入数据应在算法操作前提供.
⑤输出,一个算法中有一个或多个输出.算法的目的是用来解决一个给定的问题,因此,它应向人们提供产生的结果,否则,就没有意义了
同时还要注意算法的优化性。
.