问题 A: 计算组合数
题目描述
编制程序,输入m,n(M>=n>=0)后,计算下列表达式的值并输出:
要求将计算阶乘运算的函数写为fact(n),函数返回值的类型为float
输入
m n
输出
对应表达式的值
样例输入 Copy
2 1
样例输出 Copy
2
#include <bits/stdc++.h>
using namespace std;
long long ans[60][60];
long long sum()//利用递归求n!函数
{
for(int i=0;i<60;i++)
{
ans[i][i]=ans[i][0]=1;
}
for(int i=2;i<60;i++)
{
for(int j=1;j<=i/2;j++)
{
ans[i][j]=ans[i-1][j]+ans[i-1][j-1];
ans[i][i-j]=ans[i][j];
}
}
}
int main()
{
int n,m;
cin>>m>>n;
sum();
cout<<ans[m][n]<<endl;
return 0;
}