浙教版高中信息技术 必修一 课件_VB_枚举算法 课件(17张幻灯片)

文档属性

名称 浙教版高中信息技术 必修一 课件_VB_枚举算法 课件(17张幻灯片)
格式 pptx
文件大小 390.8KB
资源类型 教案
版本资源 浙教版
科目 信息技术(信息科技)
更新时间 2020-07-22 17:23:21

图片预览

文档简介

枚举算法
符合条件的数出来
请从下图的80本作业本中找出8、18、28号学生的作业本
策略?
一本一本翻,如果是8、18、28号则抽出来
数7游戏
请10位同学,第一位从任意数字开始报数,后面每一位同学报的数是前一位加1,共报30个数。
逢尾数是7或者7的倍数则拍手不报数
思路 数7
范围
[n,n+30]
条件
逢尾数是7或者7的倍数则拍手不报数
for i = ___ to ____
循环体
next i
If ____________ Then
list1.addItem “拍手”
Else
list1.addItem i
End If
n
n+30
i mod 10 = 7 or i mod 7 = 0
完整程序 数7
变量i从n变化到n+30,每次加1
改变i的值,i=i+步长
{3B4B98B0-60AC-42C2-AFA5-B58CD77FA1E5}For i = n to n+30
If i mod 10 = 7 or i mod 7 = 0 Then
list1.addItem i
Else
list1.addItem “拍手”
End If
Next i
枚举算法基本思想
枚举算法就是按照问题本身的性质,一一列举出该问题所有可能的解,并在逐一列举的过程中检验每个可能解是否是问题的真正解,若是则采纳这个解。
特点:简单、低效,正确的枚举总能得出正确的全面的解
步骤:
确定范围,一一枚举(循环结构)——>
逐个检验(选择结构)——>得到真解(输出)
水仙花数
水仙花数(Narcissistic number)也被称为超完全数字不变数、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身
(例如:1^3 + 5^3+ 3^3 = 153)。
——《百度百科》
思路 水仙花数
范围
3 位正整数
条件
每个位上的数字的 3次幂之和等于它本身
a=__________
b=__________
c=__________
sxh=a^3+b^3+c^3
for i = ___ to ____
循环体
next i
If ____________ Then
list1.addItem i
End If
100
999
i \ 100
i \ 10 mod 10
i mod 10
sxh = i
完整程序 水仙花数
变量i从100变化到999
{3B4B98B0-60AC-42C2-AFA5-B58CD77FA1E5}For i = 100 to 999
a = i \ 100
b= i \ 10 mod 10
c= i mod 10
sxh=a^3+b^3+c^3
If sxh = i Then list1.addItem i
Next i
a 为 i 百位上的值
b 为 i 十位上的值
c 为 i 个位上的值
改变i的值,i=i+步长
思路 水仙花数
范围
3 位正整数
条件
每个位上的数字的 3次幂之和等于它本身
sxh=a^3+b^3+c^3
for a = 1 to 9
for b = __ to __
for c = __ to __
循环体
next c
next b
next a
If ____________ Then
list1.addItem i
End If
0
9
sxh = i
0
9
{3B4B98B0-60AC-42C2-AFA5-B58CD77FA1E5}for a = 1 to 9
for b = 0 to 9
for c = 0 to 9
sxh=a^3+b^3+c^3
If sxh = i Then list1.addItem i
Next c
Next b
Next a
完整程序 水仙花数
百位变量a从1至9
改变c的值,c=c+步长
十位变量b从0至9
个位变量c从0至9
改变b的值,b=b+步长
改变a的值,a=a+步长
回文数
所谓回文数,就是说一个数字从左边读和从右边读的结果是一模一样的,比如1221是回文数,3543不是回文数。
输出1000~9999中的所有回文数。
思路 回文数
范围
[1000,9999]
条件
从左边读和从右边读的结果是一模一样的。
a=__________
b=__________
c=__________
d=__________
hws=a+b*10+c*100+d*1000
for i = ___ to ____
循环体
next i
If ____________ Then
list1.addItem i
End If
1000
9999
i \ 1000
i \ 100 mod 10
i \ 10 mod 10
i mod 10
hws = i
思路 回文数
条件
从左边读和从右边读的结果是一模一样的。
a=__________
b=__________
c=__________
d=__________
hws=a*1000+b*100+c*10+d
If ____________ Then
list1.addItem i
End If
hws = i
i \ 1000
i \ 100 mod 10
i \ 10 mod 10
i mod 10
hws=0 : k=i
for j=1 to len(str(i))-1
x=k mod 10
k=k\10
hws=hws*10+x
next j
思路 回文数
条件
从左边读和从右边读的结果是一模一样的。
a=__________
b=__________
c=__________
d=__________
hws=a+b*10+c*100+d*1000
If ____________ Then
list1.addItem i
End If
val(mid( str(i) ,2,1))
hws = i
val(mid( str(i) ,3,1))
val(mid( str(i) ,4,1))
val(mid( str(i) ,5,1))
str(1)=“ 1”,注意符号位
思路 回文数
条件
从左边读和从右边读的结果是一模一样的。
a=__________
b=__________
c=__________
d=__________
hws=a*1000+b*100+c*10+d
If ____________ Then
list1.addItem i
End If
val(mid( str(i) ,1,1))
hws = i
val(mid( str(i) ,2,1))
val(mid( str(i) ,3,1))
val(mid( str(i) ,4,1))
hws=0
for j = len(str(i)) to 2 step -1
hws =hws*10+val(mid( str(i) ,j,1))
next j
作业
P76-78 1,3,7
求玫瑰花数
四位数各位上的数字的四次方之和等于本身的数。