01 #include<cstdio> 02 03 using namespace std; 04 int findvall(int n) { 05 int f; 06 if (n == 0) return 1; 07 else { 08 f = findvall(n / 2); 09 } 10 return (n * f); 11 } 12 int main() { 13 int n; 14 scanf("%d", &n); 15 printf("%d\n", findvall(n)); 16 return 0; 17 }
1. 如果输入的 n 是负数的话,该程序会出现死循环,所以该程序不能求解 n 是负数的情况。( )
2. 第 6 行输出 if(n == 0) 改成 if(n == 1) 时,对于输入的正整数 n ,输出结果不会改变。( )
3. 对于输入的正整数程序输出的值小于等于 n 。( )
4. 如果多次运行该程序,并且输入的 n是单调递增的正整数,那么每次输出的结果也是一个严格单调递增的数列。( )
5. 若两次输入 n 的值相差 1 ,但输出的结果却是一个正数,一个负数,那么两次输入的 n 可能是下面四组中的 ( )
6. 此程序的时间复杂度是 ( )