📄 exp5_1.cpp
字号:
/*函数嵌套调用是在被调用的函数内再调用其它函数,而递归调用是在被调函数内调用自身。
嵌套调用的层数没有限制,而递归调用函数必须包含使递归终止的语句。
范例:求n个元素取m个的组合数:C(m,n)= n!/(m!*(n-m)!)
[分析] 求组合数要用到求阶乘,将求阶乘定义为一个函数,在求组合数的函数中嵌套调用阶乘函数。
由于n!=n*(n-1)!,求阶乘是一个典型的递归算法,在此用递归方法实现。
*/
#include <iostream.h>
long com(int ,int), fac(int); //原型声明
void main(){
int m,n;
cout<<"Please input two numbers m,n(m<n): \n";
cin>>m>>n;
if(m<=n) cout<<"C(m,n)="<<com(m,n)<<endl;
else cout<<"Input Error!\n";
return;
}
long com(int i,int j){
long cmb; // att: A
cmb= fac(j)/(fac(i)*fac(j-i)); //在com函数内嵌套调用fac函数
return cmb;
}
long fac(int i){
long fcl; // att:B
if(i==0||i==1) fcl =1; //使递归结束的语句
else fcl = i*fac(i-1); //递归调用
return fcl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -