递归函数f(n)=f(n-1)+n(n>1)的递归出口是()
第1题:
已知递归函数f的定义如下:
int f(int n){
if(n<= 1)return 1;//递归结束情况f5=5*f3=5*3*f1
else return n*f(n-2); //递归
}
则函数调用语句f(5)的返回值是______。
第2题:
已知f(1)=1,f(2)=2,当n≥3时,f(n)= f(n-1)+f(n-2),编程求f(100)的值,应选择的算法为( )
A.解析法
B.穷举法
C.递归法
D.冒泡排序法
第3题:
A、f(1)=0
B、f(1)=1
C、f(0)=1
D、f(n)=f(n-1)+1/n
第4题:
设求解某问题的递归算法如下: F(int n){ if n==1{ Move(1); } else{ F(n-1); Move(n); F(n-1); } } 求解该算法的计算时间时,仅考虑算法Move所进行的计算为主要计算,且Move为常数级算法,设算法Move的计算时间为k,当n=5时,算法F的计算时间为(42)。
A.7k
B.15k
C.31k
D.63k
第5题:
已知递归函数f(n)的功能是计算 1+2+3…n,且n>=1,应采用的代码段是_____.
第6题:
设求解某问题的递归算法如下:
F(int n){
if n=1 {
Move(1)
}else{
F(n-1);
Move(n);
F(n-1);
}
}
求解该算法的计算时间时,仅考虑算法Move所做的计算为主要计算,且Move为常数级算法。则算法F的计算时间T(n)的递推关系式为(9);设算法Move的计算时间为k,当 n=4时,算法F的计算时间为(10)。
A.T(n)=T(n-1)+1
B.T(n)=2T(n-1)
C.T(n)=2T(n-1)+1
D.T(n)=2T(n+1)+1
第7题:
已知递归函数f(n)的功能是打印n,n-1,…,1,且n>=1,应采用的代码段是(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);
第8题:
递归函数f(n)的功能是计算1+2+…+n,且n≥1,则f(n)的代码段是(49)。
A.if n>1 then return 1 else return n+f(n-1)
B.if n>1 then return 1 else return n+f(n+1)
C.if n>1 then return 0 else return n+f(n+1)
D.if n<1 then return 0 else return n+f(n-1)
第9题:
第10题:
将f=1+1/2+1/3+.....+1/n转化成速递归函数,其递归出口是()递归体是()。
第11题:
对
错
第12题:
f(1)=0
f(1)=1
f(0)=1
f(n)=n
第13题:
( 9 )下面的函数利用递归实现了求 1+2+3+ …… +n 的功能:
int sum ( int n ) {
if ( n==0 )
return 0;
else
return n+sum ( n-1 ) ;
}
在执行 sum ( 10 )的过程中,递归调用 sum 函数的次数是【 9 】 。
第14题:
小宋在上楼梯时,有时一步一级楼梯,有时一步两级。如果楼梯有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。
第15题:
下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。(注:阶乘的定义是n!cn*(n-1)*...*2*1)
unsigned fact(unsigned n)
{
if (n<=1)
return 1;
return 【 】;
}
第16题:
请编写一个函数long Fibo(int n), 该函数返回n的Fibonacci数。规则如下:n等于1或者2时,Fibonacci数为1,之后每个Fibonacci数均为止前两个数之和, 即:F(n)=F(n-1)+F(n-2)
注意:清使用递归算法实现该函数。
部分源程序已存在文件test1_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数Fibo的花括号中填写若干语句。如n=8时,结果是21。
文件test1_2.cpp清单如下:
include<iostream.h>
corlsh int N=8;
long Fibo(int n);
void main()
{
long f=Fibo(N);
couk<<f<<endl;
}
long Fibo(int n)
{
}
第17题:
能保证对所有的参数能够结束的递归函数是
A.int f(int n){if(n<1)return 1;else return n*f(n+1);}
B.int f(int n){if(n>1)return 1;else return n*f(n-1);}
C.int f(int n){if(abs(n)<1)return 1;else return n*f(n/2);}
D.int f(int n){if(n>1)return 1;else return n*f(n*2);)
第18题:
已知递归函数f(n)的功能是计算1+2+…+n,且n≥1,应采用的代码段是______。
A.if n>1 then return 1 else return n+f(n-1)
B.if n>1 then return 1 else return n+f(n+1)
C.if n<1 then return 0 else return n+f(n-1)
D.if n<1 then return 0 else return n+f(n+1)
第19题:
下面 ______ 是正确的递归函数,它保证对所有的参数能够结束。
A.int f(int n){ if(n<1) return 1; else return n*f(n+1); }
B.int f(int n){ if(n>1) return 1; else return n*f(n-1); }
C.int f(int n){ if(abs(n)<1) return 1; else return n*f(n/2); }
D.int f(int n){ if(n>1) return 1; else return n*f(n*2); }
第20题:
下面是用来计算n的阶乘的递归函数,请将该函数的定义补充完整。(注:阶乘的定义是n!=n*(n-1)*...*2*1)
unsigned fact (unsigned n)
{
if(n<=1)
retum 1;
return【 】;
}
第21题:
递归函数f(n)=f(n-1)+n(n>1)的递归出口是()
第22题:
对于以下递归函数f,intf(intn){returnf(n-1)+n;},调用f(4),其返回值为()
第23题:
第24题:
“递归”源自于数学上的递推式和数学归纳法
“递归”与递推式一样,都是自递推基础计算起,由前项(第n-1项)计算后项(第n项),直至最终结果的获得
“递归”是自后项(即第n项)向前项(第n-1项)代入,直到递归基础获取结果,再从前项计算后项获取结果,直至最终结果的获得
“递归”是由前n-1项计算第n项的一种方法