内容正文:
3.3.2 枚举算法及其程序实现
凤鸣高中信息技术组
课堂回顾
解析算法解题的基本思路
1.建立正确的数学模型,即得出正确的数学代数式
2.将数学代数式转化为正确的python表达式
小试牛刀
学校举行趣味游戏,游戏规则如下:参与人员排成一个圈,从第一个人开始从50开始快速地报数,若遇到7的倍数或者包含7的数字,则说“跳过”,若没有跳过,则该人淘汰。一直报数,直到圈中只剩下一人,即为胜利者。你准备好了吗?
明枪易躲,暗箭难防啊!!!
刚才我们是如何找出所有需要跳过的数的?
思考
取第一个数50 判断是否需要跳过
取第二个数51 判断是否需要跳过
取第三个数52 判断是否需要跳过
…… ……
取最后一个数n 判断是否需要跳过
一一列举
逐个判断
枚举算法
枚举算法
基本思想:按照问题本身的性质,把问题所有可能的解一一列举,然后逐个判断每一个列举出来的可能解是否是问题真正的解,若是,采纳;否则,抛弃。
一一列举
逐个验证
循环结构
分支结构
解题思路:
逐一列举可能解的范围,这个过程用循环结构实现。
对每一个可能解进行验证,这个过程用分支结构实现。
枚举算法
解题步骤:
1.确定可能解的范围(不可重复,也不可遗漏;尽可能缩小范围)
2.确定判断条件(Python表达式)
基本框架:(循环结构嵌套分支结构)
for (列举所有可能解):
if (判断条件):
输出该解或计数
循环也可使用while语句实现
1.输出50-100之间是7的倍数或者包含数字7的数,并输出一共有几个数。
基础练习
解题步骤:
(1)确定可能解的范围:50-100
(2)确定判断条件:7的倍数或者包含数字7
如何用Python表达式进行判断?
count=0
for i in :
if :
print(i,end=' ')
#填空3
print("一共找到"+str(count)+"个符合条件的数")
i%7==0 or i%10==7 or i//10==7
range(50,101)
count +=1
基础练习
2.有一个三位正整数,它有如下特点:
(1)偶数;(2)完全平方数;(3