-2021-2022学年高中信息技术浙教版(2019)必修1 3.3 简单算法及其程序实现(枚举算法)课件(25张PPT)

文档属性

名称 -2021-2022学年高中信息技术浙教版(2019)必修1 3.3 简单算法及其程序实现(枚举算法)课件(25张PPT)
格式 pptx
文件大小 1.7MB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2021-10-12 08:46:20

图片预览

文档简介

(共25张PPT)
枚举算法
例举出300以内被7整除的所有的数,如何编程实现?
分析:
列举的范围是什么?
检验的条件是什么?
列举方式是什么?
n=0,1,2,···,300
被7整除的数:n%7==0
for循环
枚举算法
例举出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
#循环j
t=20506+i*1000+j*10
if t % 23 == 0:
count+=1; print(t)
print(“这些5位数的个数为” ,count)
练习
count =0
for i in range(10): # 循环i
for j in range(10): #循环j
t=20506+i*1000+j*10
if t % 23 == 0:
count+=1; print(t)
print(“这些5位数的个数为” ,count)
练习
逐一判断
(分支结构)
易于理解
容易证明
既不遗漏
也不重复
逐一列举
(循环结构)
枚举算法
寻找质因子:输入正整数n,输出该整数的所有质因子,例如n=36,则输出2, 3
分析:
i=2,3,···,n
1,n%i==0
2,i是质数(除了1和它本身没有其他因子)
列举的范围是什么?
检验的条件是什么?
列举方式是什么?
双重for循环
提高
判断i是质数
分析:
j=2,3,···,int(i**0.5)
i%j==0
列举的范围是什么?
检验的条件是什么?
列举方式是什么?
for循环
提高
flag=0
for j in range(2,int(i**0.5)+1):
if i%j==0:
flag=1
break
if flag==0:
print(i,”是质数”)
提高
n=int(input("输入1到100数字:"))
for i in range(2,n):
if n%i==0:
flag=0
for j in range(2,int(i**0.5)+1):
if i%j==0:
flag=1
break
if flag==0:
print(i)
提高
谢谢