子函数的使用应该说比较常用,并且推荐使用的方法,高度模块化的东西弄一个子函数出来又方便修改看着也整洁
#include <iostream>
using namespace std;
int add(int a,int b);//声明
int main()
{
int a,b,res;
cin>>a>>b;
res=add(a,b);
cout<<res<<endl;
return 0;
}
int add(int a,int b){
return a+b;
}
看一个复杂点的,几个字函数递归
求组合数:n!/m!(n-m)!
#include <iostream>
using namespace std;
long com(int,int),fac(int);
int main()
{
int m,n;
cin>>m>>n;
if(m<=n)cout<<com(m,n)<<endl;
else cout<<"wrong!"<<endl;
return 0;
}
long com(int i,int j){
long cmb;
cmb=fac(j)/fac(i)*fac(j-1);
return cmb;
}
long fac(int i){
long fcl;
if(i==0||i==1)fcl=1;
else fcl=i*fac(i-1);
return fcl;
}
可以看到一个是求阶乘,一个是真正的计算公式,但是注意n取大于12就溢出了