第21课计算水仙花数
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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.AddIwenku.baidu.comem (Str(100 * a+ 10 * b+ k)) sum = sum + 1 End If Next k Next b _N_e_x_t_a________________ ’(2) Label1.Caption = "个数:" + Str(sum) End Sub
授课人:杨鹏
_s_2_=_1__0_*_b_+_a__________________ ‘(1) If _i_n_t_(_s_q_r_(_s_1_+_s__2_)_)^__2_=_s_1_+__s_2_ Then List1.AddItem (str(s1))
‘(1)寻找满足条件的方案
Next b Next a End Sub
授课人:杨鹏
算法分析
i←i+1 N
开始 i←100
N i<1000? Y a←百位上的数字
b←十位上的数字
c←个位上的数字
是否是水仙花数? a3+b3+c3=i?
Y 输出一个水仙花数i
结束
高中信息技术必修2:算法与程序设计
授课人:杨鹏
(2).分析并编写程序代码: ①程序界面设计:
高中信息技术必修2:算法与程序设计
第21课 计算水仙花数
授课人:杨鹏
高中信息技术必修2:算法与程序设计
1.寻找水仙花数。水仙花数是指这样的三位整数, 其各个位上的数之立方和恰好等于该数自己, 例如371,是水仙花数,因为371=33+73+13,设 计一个算法寻找出所有的水仙花数。
2.寻找玫瑰花数。玫瑰花数是指这样的四位整数, 其各个位上的数之4次方和恰好等于该数自己, 例如1634,1634=14+64+34+44,设计一个算法 寻找出所有的玫瑰花数。
授课人:杨鹏
枚举算法
高中信息技术必修2:算法与程序设计
枚举算法的基本思想是把问题所有的可
能解一一地罗列出来,并对每一个可能解进 行判断,以确定这个可能解是否是问题的真 正解。
在设计枚举算法时,必须注意的是: (1)不能遗漏任何一个真正解,这是问 题本身所要求的; (2)尽可能地使可能解的罗列范围最 小,这是为了提高解决问题的效率。
授课人:杨鹏
算 法 的 效 率(一)
高中信息技术必修2:算法与程序设计
评价一个算法的效率主要是考察算法执行时间的 情况。可以在相同的规模下,根据执行时间的长短来 评价一个算法的优劣。一个算法的好坏对计算机的效 能影响有多大呢?我们来做这样一个比较,假设有两 台计算机分别是计算机A和计算机B,计算机A的运算 处理速度比计算机B大约快50倍。以求解“百钱买百 鸡”(“鸡翁一,值钱五,鸡母一,值钱三,鸡雏三, 值钱一。百钱买百鸡。问鸡翁、母、雏各几何?”) 为例子,设鸡翁为x只,鸡母为y只,鸡雏为z只。算 法A:把公鸡、母鸡、小鸡的枚举范围都是1~100; 算法B:经粗略计算公鸡的枚举范围为1~20,母鸡的 枚举范围为1~33,而小鸡的枚举范围应是100-x-y。 在计算机A上运行算法A程序,在计算机B上运行算法 B程序,两台计算机谁先把结果运算出来呢?
List1.AddItem (Str(i))
sum = sum + 1
End If
Next i Label1.Caption = "个数:" + Str(sum)
End Sub
③运行调试程序;
授课人:杨鹏
课堂练习
高中信息技术必修2:算法与程序设计
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 _a__^__3_+__b_^__3_+__k_^__3_=__1_0_0_*__a+__1_0__* _b_+_k_ Then ‘(1)
授课人:杨鹏
实践活动
高中信息技术必修2:算法与程序设计
寻找水仙花数。水仙花数是指这样的三位整数,
其各个位上的数之立方和恰好等于该数自己,例如 371,是水仙花数,因为371=33+73+13,设计一个算 法寻找出所有的水仙花数。
(1).算法分析(点击打开算法分析): 水仙花数是三位整数,从100到999共900种可能, 罗列出问题所有可能的解并判断 每个位上数字的3 次方之和是否恰好等于它自己,使用运算符MOD 和\对每个整数进行分解,分别得到百位上的数字、 十位上的数字和个位上的数字。
3.寻找勾股数。“勾股数”指满足勾股定理关系的 一组整数,也就是直角三角形三边长恰好都取 整数值的特殊情况,3,4,5就是一组勾股数大 家都知道32+42=52, 输出50以内能够组成勾股 数。
4.“百钱买百鸡”问题。中国古代数学家张丘建在 《张丘建算经》中提出一个问题。“鸡翁一, 值钱五,鸡母一,值钱三,鸡雏三,值钱一。 百钱买百鸡。问鸡翁、母、雏各几何?”。
授课人:杨鹏
控件属性值的设置 参考如下表
高中信息技术必修2:算法与程序设计
对象名 Form1 List1 (用绘制而成) Command1
属性名 Caption
list Caption
属性值 水仙花数
空白 计算
授课人:杨鹏
高中信息技术必修2:算法与程序设计
②分析算法流程,编写代码;
Private Sub Command1_Click()
高中信息技术必修2:算法与程序设计
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