计算水仙花数课件_第1页
计算水仙花数课件_第2页
计算水仙花数课件_第3页
计算水仙花数课件_第4页
计算水仙花数课件_第5页
已阅读5页,还剩12页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第21课计算水仙花数第21课计算水仙花数11.寻找水仙花数。水仙花数是指这样的三位整数,其各个位上的数之立方和恰好等于该数自己,例如371,是水仙花数,因为371=33+73+13,设计一个算法寻找出所有的水仙花数。

2.寻找玫瑰花数。玫瑰花数是指这样的四位整数,其各个位上的数之4次方和恰好等于该数自己,例如1634,1634=14+64+34+44,设计一个算法寻找出所有的玫瑰花数。

3.寻找勾股数。“勾股数”指满足勾股定理关系的一组整数,也就是直角三角形三边长恰好都取整数值的特殊情况,3,4,5就是一组勾股数大家都知道32+42=52,输出50以内能够组成勾股数。

4.“百钱买百鸡”问题。中国古代数学家张丘建在《张丘建算经》中提出一个问题。“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡。问鸡翁、母、雏各几何?”。1.寻找水仙花数。水仙花数是指这样的三位整数,其各个位上的数2枚举算法枚举算法的基本思想是把问题所有的可能解一一地罗列出来,并对每一个可能解进行判断,以确定这个可能解是否是问题的真正解。

在设计枚举算法时,必须注意的是:

(1)不能遗漏任何一个真正解,这是问题本身所要求的;

(2)尽可能地使可能解的罗列范围最小,这是为了提高解决问题的效率。枚举算法枚举算法的基本思想是把问题所有的可3实践活动寻找水仙花数。水仙花数是指这样的三位整数,其各个位上的数之立方和恰好等于该数自己,例如371,是水仙花数,因为371=33+73+13,设计一个算法寻找出所有的水仙花数。

(1).算法分析(点击打开算法分析):

水仙花数是三位整数,从100到999共900种可能,罗列出问题所有可能的解并判断每个位上数字的3次方之和是否恰好等于它自己,使用运算符MOD和\对每个整数进行分解,分别得到百位上的数字、十位上的数字和个位上的数字。

实践活动寻找水仙花数。水仙花数是指这样的4算法分析i<1000?输出一个水仙花数i结束Na←百位上的数字开始i←100b←十位上的数字c←个位上的数字是否是水仙花数?a3+b3+c3=i?Yi←i+1NY算法分析i<1000?输出一个水仙花数i结束Na←百位上的数5(2).分析并编写程序代码:

①程序界面设计:(2).分析并编写程序代码:

①程序界面设计:6控件属性值的设置参考如下表对象名属性名属性值Form1Caption水仙花数List1(用绘制而成)list空白Command1Caption计算控件属性值的设置参考如下表对象名属性名属性值Form1Ca7②分析算法流程,编写代码;

PrivateSubCommand1_Click()

DimsumAsInteger

Dimi,a,b,cAsInteger

List1.Clear

Fori=100To999

a=i\100‘求得百位上的数字a

b=i\10Mod10'求得十位上的数字b

c=iMod10'求得个位上的数字c

Ifa^3+b^3+c^3=iThen'判断是否满足条件

List1.AddItem(Str(i))

sum=sum+1

EndIf

Nexti

Label1.Caption="个数:"+Str(sum)

EndSub

③运行调试程序;

②分析算法流程,编写代码;

PrivateSubComm8课堂练习1.寻找水仙花数问题,请将划线处填写完整:

PrivateSubCommand1_Click()

DimsumAsInteger

DimaAsInteger,bAsInteger,kAsInteger

List1.Clear

Fora=1To9

Forb=0To9

Fork=0To9

If__________________________________Then‘(1)List1.AddItem(Str(100*a+10*b+k))

sum=sum+1

EndIf

Nextk

Nextb

_____________________’(2)

Label1.Caption="个数:"+Str(sum)

EndSuba^3+b^3+k^3=100*a+10*b+kNexta课堂练习1.寻找水仙花数问题,请将划线处填写完整:

Priv92.把一个两位数的个位数字与其十位数字交换后得到一个新数,它与原数相加,结果恰好是一个自然数的平方,这样的两位数有多少?请将下面代码中的划线处填写完整:

PrivateSubCommand1_Click()

Dims1AsInteger,s2asInteger

DimaAsInteger,bAsInteger

List1.Clear

Fora=1To9

Forb=aTo9'假设b≥a,避免重复

s1=10*a+b

____________________________‘(1)If__________________________ThenList1.AddItem(str(s1))‘(1)寻找满足条件的方案

Nextb

Nexta

EndSub

s2=10*b+a

int(sqr(s1+s2))^2=s1+s2

2.把一个两位数的个位数字与其十位数字交换后得到一个新数,10算法的效率(一)评价一个算法的效率主要是考察算法执行时间的情况。可以在相同的规模下,根据执行时间的长短来评价一个算法的优劣。一个算法的好坏对计算机的效能影响有多大呢?我们来做这样一个比较,假设有两台计算机分别是计算机A和计算机B,计算机A的运算处理速度比计算机B大约快50倍。以求解“百钱买百鸡”(“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡。问鸡翁、母、雏各几何?”)为例子,设鸡翁为x只,鸡母为y只,鸡雏为z只。算法A:把公鸡、母鸡、小鸡的枚举范围都是1~100;算法B:经粗略计算公鸡的枚举范围为1~20,母鸡的枚举范围为1~33,而小鸡的枚举范围应是100-x-y。在计算机A上运行算法A程序,在计算机B上运行算法B程序,两台计算机谁先把结果运算出来呢?

算法的效率(一)评价一个算法的效11算法A的程序代码如下:

Forx=1To100

Fory=1To100

Forz=1To100

If(x+y+z=100)And(5*x+3*y+z/3=100)Then

List1.AddItemStr(x)+“”+Str(y)+“”+Str(z)

EndIf

Nextz

Nexty

Nextx

算法B程序代码如下:

Forx=1To20

Fory=1To33

Z=100-x-y

If5*x+3*y+z/3=100Then

List1.AddItemStr(x)+“”+Str(y)+“”+Str(z)

EndIf

Nexty

Nextx算法A的程序代码如下:

Forx=1To12运算结果是计算机B先把结果运算出来。为什么会这样呢?我们来分析一下,算法A需要执行100×100×100=1000000次内循环,而算法B只需要执行20×33=660次内循环,虽然计算机A比计算机B快50多倍,但还是计算机B先求得计算结果。

一个好的算法可以算得更快。什么样的算法是好算法呢?通常从时间复杂度和空间复杂度两方面来评价,在这里我们主要讨论时间复杂度。通常我们把算法的基本操作执行的次数作为算法的时间量度T(n)=O(f(n)),表示随着规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称时间复杂度,估算时按该算法对各种输入情况的平均值来考虑。在最坏情况下的复杂度和平均情况下的复杂度是评估算法两种衡量标准。运算结果是计算机B先把结果运算出来。为131.寻找水仙花数。水仙花数是指这样的三位整数,其各个位上的数之立方和恰好等于该数自己,例如371,是水仙花数,因为371=33+73+13,设计一个算法寻找出所有的水仙花数。

算法流程图

程序代码设计

示例程序

1.寻找水仙花数。水仙花数是指这样的三位整数,其各个位上的142.寻找玫瑰花数。玫瑰花数是指这样的四位整数,其各个位上的数之4次方和恰好等于该数自己,例如1634,1634=14+64+34+44,设计一个算法寻找出所有的玫瑰花数。

算法流程图

程序代码设计

示例程序

2.寻找玫瑰花数。玫瑰花数是指这样的四位整数,其各个位上的数153.寻找勾股数。“勾股数”指满足勾股定理关系的一组整数,也就是直角三角形三边长恰好都取整数值的特殊情况,3,4,5就是一组勾股数大家都知道32+42=52,输出5

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论