永发信息网

哪位大大会用C++主函数调子函数写出n!/[n!(n-m)!]

答案:3  悬赏:40  手机版
解决时间 2021-05-16 17:18
  • 提问者网友:不爱我么
  • 2021-05-16 08:38
简单一点的,初学者能够接受的,不胜感激
最佳答案
  • 五星知识达人网友:蕴藏春秋
  • 2021-05-16 10:00

用递归做,就是要求组合数吧,有组合的性质降阶处理就好啦



#include<iostream>
using namespace std;
int combining(int n,int m) //求下标为n,上标为m的组合数
{
if(m==n)
return 1;
else
{
if(m==1)
return(n);
if(m==0)
return 0;
if(m>1)
return combining(n-1,m-1)+combining(n-1,m);
}
}


int main()
{
int n,m;
cout<<"请输入数据,右下角数:";
cin>>n;
cout<<"右上角数为:";
cin>>m;
cout<<combining(n,m);
return 0;
}

全部回答
  • 1楼网友:三千妖杀
  • 2021-05-16 11:51

#include<iostream> #include<cstdlib> using namespace std;

double jiecheng( int n ) { double resault=1; for( int i=2; i<=n; i++) { resault *= i; } return resault; }

int main( int argc , char *argv[] ) { int m,n; cin >> m >> n; cout << jiecheng(n) / (jiecheng(m) * jiecheng(n-m)) << endl;

system("pause"); return 0; }

  • 2楼网友:零点过十分
  • 2021-05-16 10:55
#include <iostream.h> int jiecheng(int m,int n) { int i,s1=1,s2=1,s3=1; for(i=1;i<=n;i++) s1=s1*i; for(i=1;i<=m;i++) s2=s2*i; for(i=1;i<=n-m;i++) s3=s3*i; return s1/(s2*s3); } int main() { int m,n; cin>>n>>m; cout<<jiecheng(m,n)<<endl; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯