资源简介 (共25张PPT)枚举算法例举出300以内被7整除的所有的数,如何编程实现?分析:列举的范围是什么?检验的条件是什么?列举方式是什么?n=0,1,2,···,300被7整除的数:n%7==0for循环枚举算法例举出300以内被7整除的所有的数,如何编程实现?枚举算法for i in range(301):if i%7==0:print(i)编程推算单据中被涂抹数字。有一张单据上有一个5位数的编号n,如图所示,其千位数和十位数处已经变得模糊不清,但是知道这个5位数是23的倍数。现要设计一个算法,找出所有满足这些条件的5位数,并统计这些5位数的个数。练习列举的范围是什么?检验的条件是什么?列举方式是什么?千位的数:i=0,1,···,9十位的数:j=0,1,···,9被23整除:(20506+i*1000+j*10)%23==0双重for循环,找出这些数并统计其个数count_1编程推算单据中被涂抹数字。练习分析count =0# 循环i#循环jt=20506+i*1000+j*10if t % 23 == 0:count+=1; print(t)print(“这些5位数的个数为” ,count)练习count =0for i in range(10): # 循环ifor j in range(10): #循环jt=20506+i*1000+j*10if t % 23 == 0:count+=1; print(t)print(“这些5位数的个数为” ,count)练习逐一判断(分支结构)易于理解容易证明既不遗漏也不重复逐一列举(循环结构)枚举算法寻找质因子:输入正整数n,输出该整数的所有质因子,例如n=36,则输出2, 3分析:i=2,3,···,n1,n%i==02,i是质数(除了1和它本身没有其他因子)列举的范围是什么?检验的条件是什么?列举方式是什么?双重for循环提高判断i是质数分析:j=2,3,···,int(i**0.5)i%j==0列举的范围是什么?检验的条件是什么?列举方式是什么?for循环提高flag=0for j in range(2,int(i**0.5)+1):if i%j==0:flag=1breakif flag==0:print(i,”是质数”)提高n=int(input("输入1到100数字:"))for i in range(2,n):if n%i==0:flag=0for j in range(2,int(i**0.5)+1):if i%j==0:flag=1breakif flag==0:print(i)提高谢谢 展开更多...... 收起↑ 资源预览