问题标题: 酷町堂:3986

0
0
已解决
胡钰妍
胡钰妍
资深光能
资深光能

3986   计算组合数C(m, n)经验值:0

题目描述 Description

给定两个非负整数m和n,编写函数计算组合数C(m,n)的值。其中C(m,n)=m!/((m-n)!*n!)
n!指n的阶乘,n!=1*2*3*……*(n-2)*(n-1)*n

输入描述 Input Description

输入一行,两个数字,分别是m和n,数字之间用空格隔开

输出描述 Output Description

输出一行,一个数字

样例输入 Sample Input

3 2

样例输出 Sample Output

3

数据范围及提示 Data Size & Hint

0<=n<=m<=10

 

 

#include <iostream>

#include<cstdio>

using namespace std;

void cs(){

int n,m;

cin>>m>>n;

int x=m!/((m-n)!*n!);

cout<<x;

}

int main(){

cs();

return 0;

}


0
已采纳
王子健
王子健
初级天翼
初级天翼

你这种方法不太好,还会出错,我的思路以及方法:
写一个阶乘的函数,算阶乘

将m的阶乘,n的阶乘以及m-n的阶乘赋值到3个不同的变量上

输出3个变量运算结果

 

代码如下:

阶乘函数:

定义+输入:

fm代表m的阶乘,fn代表n的阶乘,fmn代表m-n的阶乘

 

运算+输出:

 

王子健在2020-08-15 11:45:09追加了内容

100分的啊

0
0
0
胡钰妍
胡钰妍
资深光能
资深光能

#include <iostream>

#include<cstdio>

#include <string>

#include<cmath>

using namespace std;

long long f(int t){

int sum=1;

for(int i=1;i<=t;i++)

sum*=i;

return sum;

}

int main(){

int m,n,fm,fn,fmn;

cin>>m>>n;

fm=f(m);

fn=f(n);

fmn=(m-n);

cout<<fm/(fmn*fn);

return 0;

}

 

30分@王子建

0
胡钰妍
胡钰妍
资深光能
资深光能

感谢王大佬相助,少写了一个字母!!!!!!

P.S:已AC

我要回答