内容正文:
5.2迭代与递归 导学案
学科
高中信息技术
教材版本
浙教版2019选修1
课题
5.2迭代与递归
一、【学习目标】
1.理解递归的算法思想。(学科核心素养:信息意识)
2.能合理选用数据结构,理清递归公式及结束条件,递归的递推与回归两个阶段。(重点)(学科核心素养:信息意识、计算思维)
3.能用自然语言、流程图、Python语言描述递归算法。能掌握递归算法的一般设计思路。(难点)(学科核心素养:信息意识、计算思维)
4.能自觉应用递归算法,解决生活、学习中的问题。
二、【自主探究】
任务一:完善划线处代码:
利用欧几里得算法求最大公约数的python程序,其中 m和n是迭代变量,迭代关系是n→m和m%n→n,由旧值推出新值,然后循环执行,直到余数为0,结束迭代。
m=int(input("请输入数m:"))
n=int(input("请输入数n:"))
while n!=0:
t=n
m=t
print( )
任务二:在程序划线处填空题:圆周率其实就是一个圆周长与直径的比值我们通常用希腊字母π表示,其中用莱布尼茨公式是这样的
小新用迭代法编写了一个Python程序用于求圆周率Pi,请完善程序(精确到小数点后6位)
i=1;s=0;k=1;ans=0
while ①
ans+=1
s+=k*1/i
i+=2
②
print("pi=",s*4)
print(迭代次数:",ans)
3、 课后练习题
1.某Python程序如下:
n=int(input())
s=x=0
while n!=0:
x=n%10
s=x+s
n=n//10
print(s)
程序运行后,输入n 的值为20220412,输出的结果是 ( )
A.13 B.1119 C.2022 D.9
2. 下列Python程序的功能是求斐波那契数列的第n 项的值:( )
n=int(input())
t1=t2=1
for i in range(3,n+1):
print("斐波那契数列第"+str(n)+"项的值为:"+str(t)
方框中的代码由以下三部分组成:①tl=t2 ②t2=t ③t=t1+t2
下列选项中代码顺序正确的是 ( )
A.①②③
B.①③②
C.③②①
D.③①②
3. 利用迭代算法求圆周率π值的方法是:计算公式π/4=1-1/3+1/5-1/7+…,直到最后一项的绝对值小于10- ⁷为止。 Python程序如下:
pi=0
fm=1
k=1
while abs(1/fm*k)>=0.0000001:
pi=pi*4
print(round(pi,6)
方框中的代码由以下三部分组成:① fm=fm+2 ②k=-k ③pi=pi+1/fm*k
下列选项中代码顺序正确的是( )
A.①②③
B.③②①
C.②①③
D.②③①
4.某Python程序如下:
def add(n):
if n==1 or n==2:
s=1
else:
s=2*(add(n- 1)+add(n-2))
return s
m=5
sum=0
for i in range(1,m+1):
sum+=add(i)
print(str(sum))
程序运行后,输出的结果是( )
A.44 B.32 C.16 D.6
5.某 Python程序如下:
def convert(n,base):
s="0123456789ABCDEF"
if n<base:
return s[n]
else:
return convert(n//base,base)+s[n%base]
x=int(input())
y=int(input())
print(convert(x,y))
程序运行后,输入x的值为164,y 的值为16,输出的结果是( )
A.104 B.401 C.4A D.A4
6. 编写一个简短的递归Python 函数,它接受一个字符串s 并且输出其逆置字符串。例如字符串“dog”的逆置字符串为“god”。程序代码如下:
s=input("请输入字符串:")
def reverse(s):
if len(s)<=1:
return s
return
print("逆置字符串为:",reverse(s))
划线处应填入的代码应是 ( )
A.s[- 1]+reverse(s[1:])
B.reverse(s[1:])+s[- 1]
C.s[- 1]+reverse(s[:- 1])
D.reverse(s[:- 1])+s[- 1]
7.有如下两个Python自定义函数:
def gcd1(a,b):
if a%b==0:
ans=b
else:
ans=gcd1(b,a%b)
return ans
def gcd2(a,b):
r=a%b
while r!=0:
a=b
b=r
r=a%b
return b
下列说法不正确的是( )
A.函数gcd1采用了递归算法
B.函数gcd2采用了迭代算法
C.gcd1(18,gcd2(9,30))返回的结果是9
D.gcd1(6,15)和gcd2(9,24)返回的结果是相等的
课后练习答案
1
2
3
4
5
6
7
A
D
B
A
D
C
C
原创精品资源学科网独家享有版权,侵权必究!6
学科网(北京)股份有限公司
$$