算法Word格式.docx

上传人:b****4 文档编号:7482482 上传时间:2023-05-08 格式:DOCX 页数:9 大小:19.19KB
下载 相关 举报
算法Word格式.docx_第1页
第1页 / 共9页
算法Word格式.docx_第2页
第2页 / 共9页
算法Word格式.docx_第3页
第3页 / 共9页
算法Word格式.docx_第4页
第4页 / 共9页
算法Word格式.docx_第5页
第5页 / 共9页
算法Word格式.docx_第6页
第6页 / 共9页
算法Word格式.docx_第7页
第7页 / 共9页
算法Word格式.docx_第8页
第8页 / 共9页
算法Word格式.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

算法Word格式.docx

《算法Word格式.docx》由会员分享,可在线阅读,更多相关《算法Word格式.docx(9页珍藏版)》请在冰点文库上搜索。

算法Word格式.docx

-'

*'

/'

};

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个或多个输出,以反映对输入数据加工后的结果.没有输出的算法是毫无意义的.

课时小结

要正确地设计一个算法就需要掌握算法的五个特性:

①有穷性,算法中执行的步骤总是有限次数的,不能无休止地执行下去.

②确切性,算法中的每一步操作的内容和顺序必须含义确切,不能有二义性.

③可行性,算法中的每一步操作都必须是可执行的,也就是说算法中的每一步都能通过手工和机器在有限时间内完成,这称之为有效性.

④输入,一个算法中有零个或多个输入.这些输入数据应在算法操作前提供.

⑤输出,一个算法中有一个或多个输出.算法的目的是用来解决一个给定的问题,因此,它应向人们提供产生的结果,否则,就没有意义了

同时还要注意算法的优化性。

.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2