1 #include<cstdio>
2 using namespace
std;
3 int
findvall(int n)
4 {
5 int f;
6 if(n==0) return 1;
7 else
8 {
9 f=findvall(n/2);
10 return (n*f);
11 }
12 }
13 int main()
14 {
15 int n;
16 scanf("%d",&n);
17 printf("%d\n",findvall(n));
18 return 0;
19 }
●判断题
(1)第6行输出if(n==0)改为if(n==1)时,对于输入的正整数n,输出结果不会改变。( )
(2)对于输入的正整数,程序输出的值小于等于n。( )
(3)如果输入的n是负数的话,该程序会出现死循环,所以该程序不能求解n是负数的情况。( )
(4)如果多次运行该程序,并且输入的n是单调递增的正整数,那么每次输出的结果也是一个严格单调递增的数列。( )
●选择题
(5)若两次输入n的值相差1,但输出的结果却是1个正数,一个负数,那么两次输入的n可能是下面四组中的( )。
A.不可能 B.-6,-7 C.-15,-16 D.-23,-24
(6)此程序的时间复杂度是( )。
A.O(n2) B. O(logn) C. O(n) D. O(nlogn)