更多"设有一个递归算法如下 im fact(int n) if(n<"的相关试题:
[单项选择]设有一个递归算法如下:
int fact(int n)
if(n<=0)return 1;
else return n*fact(n-1);
下面正确的叙述是()。
A. 计算fact(n)需要执行n次函数调用
B. 计算fact(n)需要执行n+1次函数调用
C. 计算fact(n)需要执行n+2次函数调用
D. 计算fact(n)需要执行n-1次函数调用
[单项选择]设有一个递归算法如下
im fact(int n)
if(n<=0)return 1;
else return n * fact(n-1);
下面正确的叙述是()。
A. 计算fact(n)需要执行n次函数调用
B. 计算fact(n)需要执行n+1次函数调用
C. 计算fact(n)需要执行n+2次函数调用
D. 计算fact(n)需要执行n-1次函数调用
[单项选择]设有一个递归算法如下
int fact(intn)//n 大于等于0
if (n<=0)return 1;
else return n* fact(n--);
则计算fact (n)需要调用该函数的次数为()次。
A. n
B. n+1
C. n+2
D. n-1
[单项选择]设n的初始值为正整数,设计一个递归算法如下:
int fact (int n) {
if (n<=0) return 1;
else return (n*fact(n-1));
}
以下叙述中正确的是______。
A. 计算fact(n)需要执行n次函数调用
B. 计算fact(n)需要执行n+1次函数调用
C. 计算fact(n)需要执行n+2次函数调用
D. 计算fact(n)需要执行n-1次函数调用
[单项选择]设求解某问题的递归算法如下:
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
[单项选择]将一个递归算法改为对应的非递归算法时,通常需要使用______。
A. 栈
B. 队列
C. 循环队列
D. 优先队列
[简答题]请编写一个函数comm(int n,int k),该函数将用递归算法计算从n个人中选择k个人组成一个委员会的不同组合数,由n个人里选k个人的组合数=由(n-1)个人里选k个人的组合数+由(n-1)个人里选(k-1)个人的组合数。
注意:部分源程序已存在文件test41_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数comm的花括号中填写若干语句。
源程序文件test41-2.cpp清单如下:
#include<iostream.h>
int comm(int n, int k)
{
}
void main ( )
{
int n=7, k=3;
cout<<"n=7,k=3"<<endl;
cout<<comm(n,k)<<endl;
}
[单项选择]
计算N!的递归算法如下,求解该算法的时间复杂度时,只考虑相乘操作,则算法的计算时间T(n)的递推关系式为 (55) ;对应时间复杂度为 (56) 。
int Factorial (int n)
{//计算n!
if(n<=1)return 1;
else return n * Factorial(n-1);
}
(55)处填()。
A. T(=T(n-1)+1
B. T(=T(n-1)
C. T(=2T(n-1)+1
D. T(=2T(n-1)-1
[简答题][说明]
下面的程序利用递归算法计算x和y的最大公约数。
[函数2.1]
main ( )
int x,y,k,t;
scanf(" % d% d" , &x, &y);
if(x>y) t=x;x=y; y=t;
(1) ;
while(k! =0)
y=x;
(2) ;
k=y%x;
prinff( "% d" ,x);
[函数2.2说明]
函数fun(char *str,char *substr的功能是计算子串sugbstr在串str中出现的次数。
[函数2.2]
fun(ehar * str, char * substr)
int x,y,z;
(3) ;
for(x=0;str[ x] ! = ’/O’;x + + )
for(y=x,z=0;sabstr[z] = =str[y]; (4) ,y+ +)
if( (5) = =’/0’)
num + +;
break;
return(num);
[单项选择]用递归算法实现n个相异元素构成的有序序列的二分查找,采用一个递归工作栈时,该栈的最小容量应为()。
A. n
B. n/2
C. 10g2n
D. 10g2(n+1)
[简答题]试编写一个非递归算法.实现求以二叉链表存储的二叉树中q结点的祖先。