题目
给定求组合数公式为:
C
m
n
=
m
!
n
!
(
m
−
n
)
!
.
C_{m}^{n}= \frac {m!}{n!(m-n)!}.
Cmn=n!(m−n)!m!.
,编一程序, 输入m和n的值, 求
C
m
n
C_{m}^{n}
Cmn
的值。
分析
首先根据算法优化可以进行公示化简,用一个函数返回阶乘,在编译一个函数返回公式,最后在主函数里直接调用即可。
代码(多文件编译)
main.cpp
#include <iostream>
#include "compute.h"
using namespace std;
int main()
{
int m,n;
cout<<"请输入两个数:";
cin>>m>>n;
long a=Fabricate(m,n);
cout<<"结果为:"<<a<<endl;
return 0;
}
Fabricate.cpp
#include "compute.h"
long long int Fabricate(int m,int n){
return Multi(m,m-n+1)/Multi(n,1);
}
Multi.cpp
long long int Multi(int m,int n)
{
long long int i,t=1;
for(i=n;i<=m;i++)
{
t*=i;
}
return t;
}
compute.cpp
long long int Fabricate(int m,int n);
long long int Multi(int m,int n) ;