- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第21课 计算水仙花数 1.寻找水仙花数。水仙花数是指这样的三位整数,其各个位上的数之立方和恰好等于该数自己,例如371,是水仙花数,因为371 33+73+13,设计一个算法寻找出所有的水仙花数。 2.寻找玫瑰花数。玫瑰花数是指这样的四位整数,其各个位上的数之4次方和恰好等于该数自己,例如1634,1634 14+64+34+44,设计一个算法寻找出所有的玫瑰花数。 3.寻找勾股数。“勾股数”指满足勾股定理关系的一组整数,也就是直角三角形三边长恰好都取整数值的特殊情况,3,4,5就是一组勾股数大家都知道32+42 52, 输出50以内能够组成勾股数。 4.“百钱买百鸡”问题。中国古代数学家张丘建在《张丘建算经》中提出一个问题。“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一。百钱买百鸡。问鸡翁、母、雏各几何?”。 枚举算法 枚举算法的基本思想是把问题所有的可能解一一地罗列出来,并对每一个可能解进行判断,以确定这个可能解是否是问题的真正解。 在设计枚举算法时,必须注意的是: (1)不能遗漏任何一个真正解,这是问题本身所要求的; (2)尽可能地使可能解的罗列范围最小,这是为了提高解决问题的效率。 实践活动 寻找水仙花数。水仙花数是指这样的三位整数,其各个位上的数之立方和恰好等于该数自己,例如371,是水仙花数,因为371 33+73+13,设计一个算法寻找出所有的水仙花数。 (1).算法分析(点击打开算法分析):水仙花数是三位整数,从100到999共900种可能,罗列出问题所有可能的解并判断 每个位上数字的3次方之和是否恰好等于它自己,使用运算符MOD和\对每个整数进行分解,分别得到百位上的数字、十位上的数字和个位上的数字。 算法分析 (2).分析并编写程序代码:①程序界面设计: 控件属性值的设置 参考如下表 ②分析算法流程,编写代码;Private Sub Command1_Click Dim sum As IntegerDim i, a, b, c As IntegerList1.ClearFor i 100 To 999a i \ 100 ‘求得百位上的数字ab i \ 10 Mod 10 求得十位上的数字b c i Mod 10 求得个位上的数字cIf a ^ 3 + b ^ 3 + c ^ 3 i Then 判断是否满足条件List1.AddItem Str i sum sum + 1End IfNext iLabel1.Caption 个数: + Str sum End Sub ③运行调试程序; 课堂练习 1.寻找水仙花数问题,请将划线处填写完整:Private Sub Command1_Click Dim sum As IntegerDim a As Integer, b As Integer, k As IntegerList1.ClearFor a 1 To 9For b 0 To 9For k 0 To 9If __________________________________ Then ‘ 1 List1.AddItem Str 100 * a+ 10 * b+ k sum sum + 1End IfNext kNext b_____________________ ’ 2 Label1.Caption 个数: + Str sum End Sub 2. 把一个两位数的个位数字与其十位数字交换后得到一个新数,它与原数相加,结果恰好是一个自然数的平方,这样的两位数有多少?请将下面代码中的划线处填写完整:Private Sub Command1_Click Dim s1 As Integer,s2 as IntegerDim a As Integer, b As IntegerList1.ClearFor a 1 To 9For b a To 9 假设b≥a,避免重复s1 10*a+b____________________________ ‘ 1 If __________________________ Then List1.AddItem str s1 ‘ 1 寻找满足条件的方案Next bNext aEnd Sub 算 法 的 效 率(一) 评价一个算法的效率主要是考察算法执行时间的情况。可以在相同的规模下,根据执行时间的长短来评价一个算法的优劣。一个算法的好坏对计算机的效能影响有多大呢?我们来做这样一个比较,假设有两台计算机分别是计算机A和计算机B,计算机A的运算处理速度比计算机B大约快50倍。以
文档评论(0)