递归函数f(n)=f(n-1)+n(n>1)的递归出口是()
第1题:
下面是计算n的阶乘的递归函数,请将该函数的定义补充完整。
unsigned f(unsigned n){
if(n<=1) return 1;
else return 【 】;
}
第2题:
已知递归函数f的定义如下:
int f(int n){
if(n<= 1)return 1;//递归结束情况f5=5*f3=5*3*f1
else return n*f(n-2); //递归
}
则函数调用语句f(5)的返回值是______。
第3题:
●已知递归函数f(n)的功能是打印n,n-1,…,1,且n>=1,应采用的代码段是 (42) 。
(42) A.if n>1 then f(n-1);printf("%d",n);
B.if n<1 then f(n+1);printf("%d",n);
C.printf("%d",n);if n>1 then f(n-1);
D.printf("%d",n);if n<1 then f(n+1);
第4题:
A、f(1)=0
B、f(1)=1
C、f(0)=1
D、f(n)=f(n-1)+1/n
第5题:
已知f(1)=1,f(2)=2,当n≥3时,f(n)= f(n-1)+f(n-2),编程求f(100)的值,应选择的算法为( )
A.解析法
B.穷举法
C.递归法
D.冒泡排序法
第6题:
( 8 )已知递归函数 f 的定义如下:
int f(int n)
{
if (n <= 1) return 1; // 递归结束情况
else return n * f(n-2); // 递归 }
则函数调用语句 f(5) 的返回值是 【 8 】 。
第7题:
( 9 )下面的函数利用递归实现了求 1+2+3+ …… +n 的功能:
int sum ( int n ) {
if ( n==0 )
return 0;
else
return n+sum ( n-1 ) ;
}
在执行 sum ( 10 )的过程中,递归调用 sum 函数的次数是【 9 】 。
第8题:
已知递归函数f 的定义如下:
int f (int n)
{
If(n<=1)return 1;//递归结束情况
else return n*f(n-2);//递归}则函数调用语句f(5)的返回值是( )。
1
第9题:
小宋在上楼梯时,有时一步一级楼梯,有时一步两级。如果楼梯有N级,问他上完这N
级楼梯有多少种?对于这样的问题,我们用递归来解决,我们可以假设用f(n)表示从第0
级上到第N级的方法数,考虑他最后一步的情况,有两种,一种是最后是跨了 一级,一种是
最后跨了两级,所以得到递归关系式f(n)=f(n-l)+f(n-2),还需要有递归出口,下面哪个
选项描述的递归出口满足该题目()<,
A. f(O)=l
B. f(O)=l 和 f(1)=1
C. f(l)=l
D. f(l)=l 和 f(3)=3
答案:B
解析:就是Fibonacci数列 F(n)=F(n-1)+f(n-2)
用递归求第10个数,它等于前2数之和,如{1,1,2,3,5}
得到递归式为f(n)=f(n-1)+f(n-2),终止条件为f(0)=1, f(1)=1。
第10题:
下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。(注:阶乘的定义是n!cn*(n-1)*...*2*1)
unsigned fact(unsigned n)
{
if (n<=1)
return 1;
return 【 】;
}