南邮算法 homework1-13:计算二项式系数
题目
写一个递归算法和一个迭代算法计算二项式系数。
代码
//计算二项式系数
#include<iostream>
using namespace std;
/*
//递归算法
int n_factorial(int n){
if(n != 1){
return(n * n_factorial(n-1)); //不是递减,而是参数为 n-1
}
else return 1;
}
int main(){
int m,n;
cin>>n>>m;
int result = n_factorial(n)/(n_factorial(m)*n_factorial(n-m));
cout<<result<<endl;
return 0;
}
*/
//迭代算法
int main(){
int m,n;
cin>>n>>m;
int x,y,z;
x= y = z = 1;
int temp = n-m;
while(n != 1){
x *= (n--);
}
while(m != 1){
y *= (m--);
}
while(temp != 1){
z *= (temp--);
}
cout<<x/(y*z)<<endl;
return 0;
}