资源简介 / 让教学更有效 精品试卷 | 信息第13课 课后练习(答案版 · 教师用)班级:____________ 姓名:____________ 得分:__________一、填空(每空 3 分,共 24 分)1.递推的三要素是:______________、递推公式、______________。2.斐波那契数列 1, 1, 2, 3, 5, 8, …,它的递推公式是 f(n) = ______________ + ______________。3.猴子吃桃问题中,如果第 k + 1 天早上有 y 个桃子,那么第 k 天早上有 ______ 个桃子。4.倒着循环时,range 的第三个参数应写成 ______。5.猴子吃桃到第 10 天早上剩 1 个,第 9 天早上应有 ______ 个。二、判断对错(每题 3 分,共 12 分)1.递推必须从第一项开始算,不能倒着推。( )2.a, b = b, a + b 这一行会先把右边的 a + b 算出来,再同时赋值。( )3.爬楼梯问题的走法数量,本质上就是斐波那契数列。( )4.用递推求斐波那契第 35 项,比用递归快得多。( )三、手算模拟题(16 分)第 1 题 用两个变量法求斐波那契第 6 项,请填表。i 挪之前的 a 挪之前的 b 本项的值初始 1 1 —3456第 6 项的值是 ______。第 2 题 猴子吃桃:请从第 10 天倒推到第 5 天,填表。天 当天早上个数 计算过程第 10 天 1 已知第 9 天第 8 天第 7 天第 6 天第 5 天四、★ 补全代码(每空 5 分,共 20 分)第 1 题 用递推求第 n 项斐波那契数。n = int(input())if n <= 2:print(1)else:/n a, b = 1, 1for i in range(3, n + 1):a, b = b, ①________________print(b)第 2 题 用列表递推求斐波那契。f = [0] * (n + 1)f[1] = 1f[2] = 1for i in range(3, n + 1):f[i] = f[i - 1] + ②________________print(③____________)第 3 题 猴子吃桃。peach = 1for day in range(9, ④______, -1):peach = (peach + 1) * 2print(peach)① ______ ② ______ ③ ______ ④ ______五、★★ 提高题(每题 10 分,共 30 分)第 1 题 递推与递归对比同一道「求第 n 项斐波那契数」,请分别用递归和递推写出程序,把 n 设为 30 各跑一次,感受速度差异,并说明递推为什么更快。________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________结 论:________________________________________________________________________________________________________________________________________________________________________________________第 2 题 爬楼梯(一题多解)有一段 n 级台阶,每次可以走 1 级或 2 级。① 请手算 n = 1、2、3、4 时的走法数量,填入下表;② 观察规律,写出 n = 5、6 时的走法数量;③ 用递推编程验证你的答案。n 1 2 3 4 5 6走法数____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________第 3 题 读程序写结果x = 3for i in range(4):x = x * 2 - 1print(x, end=" ")print()print("最终:", x)输出结果:____________________________________最终 x = ______。六、★★★ 挑战题(每题 12 分,共 24 分)第 1 题 猴子吃桃完整版完成猴子吃桃问题,并要求:① 输出每一天早上的桃子个数;② 找出在哪一天桃子第一次少于 100 个。____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________自测:第 10 天 1 个,第 9 天 4 个,第 1 天共 1534 个。第 2 题 数列求和(递推思想)已知数列:1, 3, 6, 10, 15, 21, …(每一项是前面所有项之和再加 1,等价于 f(n) = f(n-1) + n)。请用递推求出这个数列的前 20 项,并输出前 20 项之和。____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________教师评语:____________________________________________________________________________________________________________________________________第 13 课 参考答案(教师用)与《教师参考答案》册同源,全部数值均已实际运行核验一、填空1.初始值、循环推进 2.f(n - 1)、f(n - 2) 3.(y + 1) * 24.-1 5.4二、判断对错1.×(当顺着推困难、倒着推容易时,完全可以倒推) 2.√ 3.√ 4.√三、手算模拟题第 1 题:i 挪之前的 a 挪之前的 b 本项的值初始 1 1 —3 1 1 24 1 2 35 2 3 56 3 5 8第 6 项的值是 8。第 2 题:天 当天早上个数 计算过程第 10 天 1 已知第 9 天 4 (1 + 1) × 2 = 4第 8 天 10 (4 + 1) × 2 = 10第 7 天 22 (10 + 1) × 2 = 22第 6 天 46 (22 + 1) × 2 = 46第 5 天 94 (46 + 1) × 2 = 94四、★ 补全代码① a + b ② f[i - 2] ③ f[n] ④ 0五、★★ 提高题第 1 题:递推版见本课示例 1;递归版见第 10 课示例 2。n = 30 时,递推几乎瞬间完成,递归要等好几秒。递推更快是因为每一项只算一次,而递归会重复计算大量相同的项。第 2 题:n 1 2 3 4 5 6走法数 1 2 3 5 8 13规律:从 n = 3 起,走法数 = 前两项之和,正是斐波那契数列(后移一位)。n = int(input("楼梯级数:"))if n <= 2:print(n)else:a, b = 1, 2for i in range(3, n + 1):a, b = b, a + bprint(b)第 3 题:输出 5 9 17 33(每行一个数连着空格),最终 x = 33。六、★★★ 挑战题第 1 题:peach = 1days = [0] * 11days[10] = 1for day in range(9, 0, -1):peach = (peach + 1) * 2days[day] = peachfor d in range(1, 11):print(f"第 {d} 天早上:{days[d]} 个")# 第一次少于 100 个for d in range(1, 11):if days[d] < 100:print(f"第 {d} 天桃子第一次少于 100 个")break自测:第 10 天 1 个,第 9 天 4 个,第 1 天 1534 个。第 5 天早上 94 个,是第一次少于 100 个。第 2 题:f = [0] * 21f[1] = 1for i in range(2, 21):f[i] = f[i - 1] + ifor i in range(1, 21):print(f[i], end=" ")print()print("前 20 项之和:", sum(f[1:21]))21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)21世纪教育网(www.21cnjy.com)/ 让教学更有效 精品试卷 | 信息第13课 课后练习(学生用)班级:____________ 姓名:____________ 得分:__________一、填空(每空 3 分,共 24 分)1.递推的三要素是:______________、递推公式、______________。2.斐波那契数列 1, 1, 2, 3, 5, 8, …,它的递推公式是 f(n) = ______________ + ______________。3.猴子吃桃问题中,如果第 k + 1 天早上有 y 个桃子,那么第 k 天早上有 ______ 个桃子。4.倒着循环时,range 的第三个参数应写成 ______。5.猴子吃桃到第 10 天早上剩 1 个,第 9 天早上应有 ______ 个。二、判断对错(每题 3 分,共 12 分)1.递推必须从第一项开始算,不能倒着推。( )2.a, b = b, a + b 这一行会先把右边的 a + b 算出来,再同时赋值。( )3.爬楼梯问题的走法数量,本质上就是斐波那契数列。( )4.用递推求斐波那契第 35 项,比用递归快得多。( )三、手算模拟题(16 分)第 1 题 用两个变量法求斐波那契第 6 项,请填表。i 挪之前的 a 挪之前的 b 本项的值初始 1 1 —3456第 6 项的值是 ______。第 2 题 猴子吃桃:请从第 10 天倒推到第 5 天,填表。天 当天早上个数 计算过程第 10 天 1 已知第 9 天第 8 天第 7 天第 6 天第 5 天四、★ 补全代码(每空 5 分,共 20 分)第 1 题 用递推求第 n 项斐波那契数。n = int(input())if n <= 2:print(1)else:/n a, b = 1, 1for i in range(3, n + 1):a, b = b, ①________________print(b)第 2 题 用列表递推求斐波那契。f = [0] * (n + 1)f[1] = 1f[2] = 1for i in range(3, n + 1):f[i] = f[i - 1] + ②________________print(③____________)第 3 题 猴子吃桃。peach = 1for day in range(9, ④______, -1):peach = (peach + 1) * 2print(peach)① ______ ② ______ ③ ______ ④ ______五、★★ 提高题(每题 10 分,共 30 分)第 1 题 递推与递归对比同一道「求第 n 项斐波那契数」,请分别用递归和递推写出程序,把 n 设为 30 各跑一次,感受速度差异,并说明递推为什么更快。________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________结 论:________________________________________________________________________________________________________________________________________________________________________________________第 2 题 爬楼梯(一题多解)有一段 n 级台阶,每次可以走 1 级或 2 级。① 请手算 n = 1、2、3、4 时的走法数量,填入下表;② 观察规律,写出 n = 5、6 时的走法数量;③ 用递推编程验证你的答案。n 1 2 3 4 5 6走法数____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________第 3 题 读程序写结果x = 3for i in range(4):x = x * 2 - 1print(x, end=" ")print()print("最终:", x)输出结果:____________________________________最终 x = ______。六、★★★ 挑战题(每题 12 分,共 24 分)第 1 题 猴子吃桃完整版完成猴子吃桃问题,并要求:① 输出每一天早上的桃子个数;② 找出在哪一天桃子第一次少于 100 个。____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________自测:第 10 天 1 个,第 9 天 4 个,第 1 天共 1534 个。第 2 题 数列求和(递推思想)已知数列:1, 3, 6, 10, 15, 21, …(每一项是前面所有项之和再加 1,等价于 f(n) = f(n-1) + n)。请用递推求出这个数列的前 20 项,并输出前 20 项之和。____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________教师评语:____________________________________________________________________________________________________________________________________21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)21世纪教育网(www.21cnjy.com) 展开更多...... 收起↑ 资源列表 第13课 递推与模拟——一步一步往下推课后练习(学生用).docx 第十三课课后练习(答案版).docx