#CS40509. 阅读程序5-递推与递归9

阅读程序5-递推与递归9

阅读程序

注意:切勿用电脑直接运行代码得出答案,请用大脑+笔+纸运行代码答题,否则是在浪费你的时间。

第9题【NOIP】2018

#include <iostream>
using namespace std;
int n, m;
int findans(int n, int m) {
    if (n == 0) return m;
    if (m == 0) return n % 3;
    return findans(n - 1, m) - findans(n, m - 1) + findans(n - 1, m - 1);
}
int main(){
    cin >> n >> m;
    cout << findans(n, m) << endl;
    return 0;
}

●判断题

(1)将第5行和第6行一起去掉,程序会出现死循环。

{{ select(9-1) }}

  • 正确
  • 错误

(2)当输人的n,m的绝对值在1000以内时,程序一定会正常运行。

{{ select(9-2) }}

  • 正确
  • 错误

(3)若将该递归程序执行记忆化,则程序的时间复杂度为O(nm)。

{{ select(9-3) }}

  • 正确
  • 错误

(4)将第3行接在第9行后,则程序会编译错误。

{{ select(9-4) }}

  • 正确
  • 错误

●选择题

(5)输入5 6,则输出为()。

{{ select(9-5) }}

  • 5
  • 6
  • 7
  • 8

(6)输人2 4,则输出为()

{{ select(9-6) }}

  • 5
  • 6
  • 7
  • 8

(7)如果代码进行记忆化优化后,输入998 998,则输出()

{{ select(9-7) }}

  • 998
  • 1569
  • 1000
  • 1325