0
点赞
收藏
分享

微信扫一扫

C++ 求组合值

题目描述

组合公式C(x,y)=x!/(y!*(x-y)!),现在给出x和y,请求出C(x,y)

输入描述

输入有多行,每行包含两个数x,y(1<x、y<=50)

输出描述

对于每行输入,输出一行计算结果

输入样例

6 4
10 5
15 7

输出样例

15
252
6435

#include <iostream>

using&nbsp;namespace&nbsp;std;

_int64&nbsp;c(int&nbsp;x,&nbsp;int&nbsp;y)&nbsp;{&nbsp;// 返回值使用_int64 因为组合公式C(x,y)=x!/(y!*(x-y)!),每次计算的过程会超出int类型的数据范围
int&nbsp;i,&nbsp;j&nbsp;=&nbsp;1;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_int64&nbsp;c&nbsp;=&nbsp;1;
for&nbsp;(i&nbsp;=&nbsp;x;&nbsp;j&nbsp;&lt;=&nbsp;y;&nbsp;i--)&nbsp;{
c&nbsp;=&nbsp;c&nbsp;*&nbsp;i&nbsp;/&nbsp;j;
j++;

}
return&nbsp;c;
}

int&nbsp;main()&nbsp;{
int&nbsp;x,&nbsp;y;
while(cin&nbsp;&gt;&gt;&nbsp;x&nbsp;&gt;&gt;&nbsp;y){
if(x&nbsp;&lt;=&nbsp;50&nbsp;&amp;&amp;&nbsp;y&nbsp;&lt;=&nbsp;50&nbsp;&amp;&amp;&nbsp;1&nbsp;&lt;&nbsp;x&nbsp;&amp;&amp;&nbsp;1&nbsp;&lt;&nbsp;y){&nbsp;&nbsp;// (1<x、y<=50)
cout&nbsp;&lt;&lt;&nbsp;c(x,&nbsp;y)&nbsp;&lt;&lt;&nbsp;endl;
}else{
break;
}
}
}


举报

相关推荐

C++ 求最大值

组合模式(C++)

C++求素数

c++求余数

求组合数()

0 条评论