计算水仙花数摘要.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第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 Integer Dim i, a, b, c As Integer List1.Clear For i = 100 To 999 a = i \ 100 ‘求得百位上的数字a b = i \ 10 Mod 10 求得十位上的数字b c = i Mod 10 求得个位上的数字c If a ^ 3 + b ^ 3 + c ^ 3 = i Then 判断是否满足条件 List1.AddItem (Str(i)) sum = sum + 1 End If Next i Label1.Caption = 个数: + Str(sum) End Sub ③运行调试程序; 课堂练习 1.寻找水仙花数问题,请将划线处填写完整: Private Sub Command1_Click() Dim sum As Integer Dim a As Integer, b As Integer, k As Integer List1.Clear For a = 1 To 9 For b= 0 To 9 For k = 0 To 9 If __________________________________ Then ‘(1) List1.AddItem (Str(100 * a+ 10 * b+ k)) sum = sum + 1 End If Next k Next b _____________________ ’(2) Label1.Caption = 个数: + Str(sum) End Sub 2. 把一个两位数的个位数字与其十位数字交换后得到一个新数,它与原数相加,结果恰好是一个自然数的平方,这样的两位数有多少?请将下面代码中的划线处填写完整: Private Sub Command1_Click() Dim s1 As Integer,s2 as Integer Dim a As Integer, b As Integer List1.Clear For a = 1 To 9 For b = a To 9 假设b≥a,避免重复 s1=10*a+b ____________________________ ‘(1) If __________________________ Then List1.AddItem (str(s1))  ‘(1)寻找满足条件的方案 Next b Next a End Sub 算 法 的 效 率(一) 评价一个算法的效

文档评论(0)

yy556911 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档