#JC1049. 递归进阶
递归进阶
一、单项选择题(每题2分,共20分)
1、递归的三个组成部分是?() {{ select(1) }}
- 入队、标记、出队
- 递进、递归出口、回归
- 初始化、递推公式、循环
- 排序、二分、验证
2、下列条件中,适合使用递归求解问题的是?() {{ select(2) }}
- 问题规模只能不断变大
- 大问题可以拆解为结构相似的更小子问题
- 必须使用全局变量才能计算
- 只能处理n小于10的数据
3、递归求1~n累加和,当n>1时递归公式正确的是?() {{ select(3) }}
f(n)=f(n‑1)+nf(n)=f(n‑1)*nf(n)=f(n‑1)+f(n‑2)f(n)=n+f(n+1)
4、递归求n的阶乘,递归出口是?() {{ select(4) }}
if(n==0) return 0;if(n==1) return 1;if(n>1) return n;if(n<0) return 1;
5、斐波那契数列递归求解,f(1)与f(2)返回值为?()
{{ select(5) }}
- 0
- 2
- 1
- 3
6、“数的个数”题目,输入n=6,ans的初始值设置为?() {{ select(6) }}
- 0
- 1
- 6
- 3
7、因数分解题目,a=a本身也算一种方案,所以ans初始值为?()
{{ select(7) }}
- 0
- 24
- 1
- a
8、黑白棋递归问题,递归出口的条件是?() {{ select(8) }}
m == 2m == 4m == nm > 4
9、汉诺塔递归,当n等于1的时候,应当执行什么操作?() {{ select(9) }}
- 递归调用n‑1
- 直接输出从起始柱移动到目标柱
- 什么都不做直接return
- 将盘子移动到过渡柱
10、汉诺塔递归,把n个盘子从A借助B移动到C,第一步递归操作为?() {{ select(10) }}
hanoi(A,C,B,n‑1)hanoi(B,A,C,n‑1)hanoi(A,B,C,n‑1)hanoi(C,A,B,n‑1)
二、判断题(每题2分,共10分)
11、递归的递进是层层进入下一层,回归是逐层返回上一层。() {{ select(11) }}
- 正确
- 错误
12、递归如果没有设置递归出口,程序会无限递归造成栈溢出。() {{ select(12) }}
- 正确
- 错误
13、因数分解题目,分解时允许出现因子1,不需要因子大于1。() {{ select(13) }}
- 正确
- 错误
14、黑白棋移动,每次移动可以同时移动相邻两个棋子。() {{ select(14) }}
- 正确
- 错误
15、汉诺塔规则允许大盘子放在小盘子上方,方便移动。() {{ select(15) }}
- 正确
- 错误