首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成以下函数: int factorial(int n):求出n的阶乘,必须使用递归调用。 如果n小于1则返回0。 注意:不能修改函数的其他部分。 I #i
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成以下函数: int factorial(int n):求出n的阶乘,必须使用递归调用。 如果n小于1则返回0。 注意:不能修改函数的其他部分。 I #i
admin
2015-05-30
33
问题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。请完成以下函数:
int factorial(int n):求出n的阶乘,必须使用递归调用。
如果n小于1则返回0。
注意:不能修改函数的其他部分。
I #include
2 #include
3 int factorial(int n)
4 {
5
6 }
7 void main()
8 {
9 cout<
10 cout<
11 cout<
12 return;
13 }
选项
答案
1 if(n<1) 2 { 3 return 0 ; 4 } 5 else if(n==1) 6 { 7 return 1 ; 8 } 9 else 10 { 11 return n*factorial(n-1); 12 }
解析
factorial(int n)求出n的阶乘,要求使用递归调用。递归调用是指在调用一个函数的过程中直接或间接地调用该函数本身,n的阶乘计算公式为:n!=n×(n-1)×(n-2)……2×1,即n!=n×(n-1)!,因此factorial(int n)的递归过程为:return n*factorial(n-1)。
[解题思路]
(1)先考虑最简单的情况,n为1(或小于1)时返回值应该为l,即factorial(1)=1,这是递归结束条件,如果n大于1则递归调用自己。
(2)n>1时,此时递归函数调用自己,即factorial(n)=n*factorial(n.1),此时的函数的返回值是n*factorial(n-1),如此来实现递归调用。
转载请注明原文地址:https://kaotiyun.com/show/EJNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
关于对象成员的构造函数的调用顺序,说法正确的是______。
以下程序的输出结果是______。for(x=3;x=6;x++){cout<<((x%2)?"**":"#")<<x;if(x%2==0)cout<<end1;}
设有关系模式R(A,B,C,D,E,P),其函数依赖集为{E→D,C→B,(C,E)→F,B→A},则R最高达到______。
程序的三种基本控制结构是______。
如果要在类的对象上使用运算符,除了运算符=和【】以外,其它的必须都要被重载。
冒泡排序在最好情况下时间复杂度为【】。
有以下定义,则此数组的元素中不正确的一个赋值结果是______。staticinta[10]={1,2,3,4,5};
数据库管理系统DBMS中用来定义模式、内模式和外模式的语言是______。
使用白盒测试方法时,确定测试数据应根据______和指定的覆盖标准。
在关系数据库中,用来组织索引结构联系的是()。
随机试题
美学的性质是()
采用伊红Y染色观察精子存活率,死亡精子的特点是
主要与迟发型变态反应有关的细胞类型为()
男,30岁,咳嗽、发热3天。入院后咳大量铁锈色痰,最可能的诊断为
电力电缆按绝缘材料可分为()。
QQ空间是目前深受网友喜爱的展示自我、与他人交流的网络平台。下列行为符合网络文明公约的是()。
甲某为了要男孩,将妻子刚生下的女婴,扔进小河里淹死。甲某犯有()。
甲、乙、丙三人跑步比赛,从跑道起点出发,跑了20分钟,甲超过乙一圈,又跑了10分钟,甲超过丙一圈,问再过多长时间,丙超过乙一圈?()
Wefindthatbrightchildrenarerarelyheldbackbymixedabilityteaching.Onthecontrary,boththeirknowledgeand【B1】______
Onelunchtime,MayWardwasgoingroundthelocalsupermarketinParksideRoad,Liverpool,doinghershopping,whenshesuddenly
最新回复
(
0
)