资源简介 (共17张PPT)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=0for i in :if :print(i,end=' ')#填空3print("一共找到"+str(count)+"个符合条件的数")i%7==0 or i%10==7 or i//10==7range(50,101)count +=1基础练习2.有一个三位正整数,它有如下特点:(1)偶数;(2)完全平方数;(3)比3的整数倍大1。编程求解所有符合条件的数并输出结果。解题步骤:(1)确定可能解的范围:100-999(2)确定判断条件:既是偶数又是完全平方数且比3的整数倍大1尽可能缩小枚举范围def my(x):if :f=Trueelse:f=Falsereturn ffor i in range(100,1000,2):if :print(i)my(i) and i%3==1x**0.5==int(x**0.5)3.一个四位正整数,如果各个位上数字的四次方之和等于这个数本身,我们就称这个数为四叶玫瑰数。请编程找出所有的四叶玫瑰数。解题步骤:(1)确定可能解的范围:四位正整数:1000-9999(2)确定判断条件:各个位上数字的四次方之和等于这个数本身判断正解之前需要取出各个位上的数字提取千位数字a:提取百位数字b:提取十位数字c:提取个位数字d:i//1000i//10%10 或i%100//10i%10i//100%10 或i%1000//100提高练习count=0for i in :a=i//1000 #求四位数千位数字b=i//100%10 #求四位数百位数字c=i//10%10 #求四位数十位数字d=i%10 #求四位数个位数字if :print(i)count+=1print("一个找到"+ +"个四叶玫瑰数")range(1000,10000)a**4+b**4+c**4+d**4==istr(count)4.一张纸上有个五位数密码,其中的百位数字和十位数字已经模糊不清,如图所示,已知这个数字是37或者67的倍数。请编程找到所有符合条件的密码。提高练习解题步骤:(1)确定可能解的范围:百位和十位:00-99可能解怎么表达?(2)确定判断条件:是37或者67的倍数#填空1for i in range(0,100):x = #填空2if :count=count+1print(x)print("一共找到"+str(count)+"个符合条件的密码!")构造可能解count=025006+10*ix%37==0 or x%67==05.一张纸上有个五位数密码,其中的千位数字和十位数字已经模糊不清,如图所示,已知这个数字是27或者37的倍数。请编程找到所有符合条件的密码。进阶练习解题步骤:(1)确定可能解的范围:无法整体枚举逐个枚举:千位:0-9,十位:0-9(2)确定判断条件:是27或者37的倍数双重循环count=0for i in :for j in :#填空3if m%37==0 or m%27==0:count=count+1print(m)print("一共找到"+str(count)+"个符合条件的密码!")m = 20500+1000*i+10*jrange(0,10)range(0,10)构造可能解课堂总结基本思想:按照问题本身的性质,把问题所有可能的解一一列举,然后逐个判断每一个列举出来的可能解是否是问题真正的解,若是,采纳;否则,抛弃。解题步骤:1.确定可能解的范围(不可重复,也不可遗漏;尽可能缩小范围)2.确定判断条件(Python表达式)基本框架:(循环结构嵌套分支结构)for (列举所有可能解):if (判断条件):输出该解或计数循环也可使用while语句实现 展开更多...... 收起↑ 资源预览