枚举算法举例

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

i<=1000
F
T
i mod 3=0
F
T 检验 输出 i
检验:
i mod 3=0
F
T
输出 i
i=i+1
结束
练习
找出所有 100,1000 之间 35的倍数的数字,
范围: 100 1000
初 值:100 终 值:1000 步 长:1
条件:
x mod 35 = 0
Start
x←100
N
Y
N
End
Y
输出X
即: n mod 7=0 or n mod 11=0
数据还原
开始
i=0
i<10
N
Y
n=14708+i*10
N
n mod 7=0 or n mod 11=0
Y 输出n
i=i+1
结束
程序代码:
i=0 Do while i<10
n=14708+i*10 if n mod 7=0 or n mod 11=0 then
游戏规则:从1开始数起,每个人数一个数,
凡是遇到7的倍数就要喊过, 这样一直数到100为止,
任务:帮小明找出1——100所有要喊过的数
数7游戏
分析: 用变量i表示要列举的自然数,
列举
列举范围:1——100
检验
检验条件:i能否被7整除,
注意:在列举过程中要既不遗漏,又不重复,
数7游戏
用变量i表示要列举的自然数,
b
c
0
0
33
100
1
3
检验:
a*5+b*3+c/3=100
开始
a=0
a<=20
F
T b=0
b<=33
F
T
c=0
c<=100
F
T
a*5+b*3+c/3=100
F
T
输出 a、b、c
c=c+3
b=b+1
a=a+1
结束
求1-1000中,能被3整除的数
开始
枚举时注意:
i=1
不遗漏,不重复, 且可能的解有限,
练一练
用10元和50元两种纸币组成240元, 共有几种组合方式 试用枚举算法列出 所有不同的取法,
Start x←1
N Y y←1
N
Y N
10x+50y=240
Y 输出x,y
练一练 End
用10元和50元两种 纸币组成240元,共有 几种组合方式 试用 枚举算法列出所有不 同的取法,
ห้องสมุดไป่ตู้
数据还原
一单据上有一个5位数的编号,万位数是1,千位数是4, 百位数是7,个位数是8,十位数已经模糊不清,只知道该5位 数是7或11的倍数,找出所有满足这些条件的5位数并输出 ,
NO. 147 8
分析: 用变量i表示十位上的数;变量n表示这个5位数,
列举范围:0——9
检验条件:n能被5或者11整除,
列举范围:1——100 检验条件:i能否被7整除,
开始
i=1
i<=100 N Y N
i mod 7=0 Y
输出i
i=i+1
结束
数7游戏
开始
i=1 i<=100 N
Y i mod 7=0 N
Y 输出i
i=i+1
结束
一一列举
循 环
循环结构


逐个检验
套 分
分支结构

数7游戏
开始
i=1 i<=100 N
思考:
一单据上有一个5位数的编号,千位数是1,百位数是7, 个位数是8,万位数和十位数已经模糊不清,只知道该5位 数是7或11的倍数,找出所有满足这些条件的5位数并输出 ,
NO. 17 8
提示:该题要列举的对象有两个,分别是万位数和个 位数,用循环的嵌套,
出1-1000中所有能被7和11整除的数, c 开始
Y i mod 7=0 N
Y 输出i
i=i+1
结束
程序代码:
i=1 Do while i<=100
if i mod 7=0 then print i
end if i=i+1 loop
枚举算法的设计步骤
• 确定列举范围 • 明确检验条件 • 确定循环控制方式和列举方式
注意:
枚举算法只适用于可能解的个数不太多的情况,
····· ·
10.拿出第十把钥匙, 试验第十把钥匙能否开门,
枚举法
列举
检验
枚举算法的概念
枚举算法就是按照问题本身的性质,一一列举
出该问题所有可能的解,并根据问题的条件对各
解进行逐个检验,从中挑选出符合条件的解,舍
弃不符合条件的解,
一一列举;逐个检验
数7游戏
在联欢会上,小明提议大家来玩数7的游戏,
枚举算法
找钥匙
小明是一个数学迷,昨天他约了几个同学一 起到会议室里举行一个联谊会,可是粗心的小明 去总务处拿了一串钥匙回来准备开门时,却忘记 了到底哪一把才是会议室的钥匙,假设这串钥匙 一共有10把,
问题:怎样才能找到正确的钥匙来开门
找钥匙的过程
1.拿出第一把钥匙, 试验第一把钥匙能否开门; 2.拿出第二把钥匙, 试验第二把钥匙能否开门; 3.拿出第三把钥匙, 试验第三把钥匙能否开门;
Print n end if i=i+1 Loop
生活中的枚举算法实例
• 找钥匙 • 警察审案 • 挑烂苹果
······
小结:
1.枚举算法的概念 一一列举;逐个检验 2.枚举算法的结构特征循环结构中嵌套分支结构 3.枚举算法的设计确步骤定列举范围;明确检验条件 4.枚举算法的应用 适用于解的个数不太多
i=1
i<=1000
F
T
i mod 3=0
F
T 输出 i
i mod 7=0 and i mod 11=0
i mod 77=0
i=i+1
结束
百鸡百钱问题,
鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百 钱买百鸡,问翁、母、雏各几何
鸡翁 鸡母 鸡雏
一一列举: a 初值: 0 终值: 20
递增值: 1
相关文档
最新文档