⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 exp5_1.cpp

📁 高等教育出版社出版的C++程序设计同步实验范例 希望对用这本教材得同学有点帮助
💻 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 + -