#JC1049. 递归进阶

递归进阶

一、单项选择题(每题2分,共20分)

1、递归的三个组成部分是?() {{ select(1) }}

  • 入队、标记、出队
  • 递进、递归出口、回归
  • 初始化、递推公式、循环
  • 排序、二分、验证

2、下列条件中,适合使用递归求解问题的是?() {{ select(2) }}

  • 问题规模只能不断变大
  • 大问题可以拆解为结构相似的更小子问题
  • 必须使用全局变量才能计算
  • 只能处理n小于10的数据

3、递归求1~n累加和,当n>1时递归公式正确的是?() {{ select(3) }}

  • f(n)=f(n‑1)+n
  • f(n)=f(n‑1)*n
  • f(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 == 2
  • m == 4
  • m == n
  • m > 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) }}

  • 正确
  • 错误