如何算组合数
作者:
risufanple
,
2021-09-27 01:40:58
,
所有人可见
,
阅读 351
请把其中一种注释掉再运行(每一种上面都有标这是第几种写法), 否则会报错!
第一种(不能算太大的)
#include <iostream>
#include <cstdio
#include <cmath>
using namespace std;
double C(int a, int b)
{
double res = 1;
for (int i = 1, j = a; i <= b; i ++, j -- )
res = res * j / i;
return res;
}
int main()
{
long long a, b;
scanf("%lld%lld", &a, &b);
printf("%lf\n", C(a, b));
return 0;
}
第二种(可以算大的)
#include <iostream>
#include <cstdio>
#include <cmath>
using namespace std;
const double eps = 1e-6;
double C(int a, int b)
{
double res = 1;
for (int i = 1, j = a; i <= b; i ++, j -- )
res = res * j / i;
return res;
}
int main()
{
long long a, b;
scanf("%lld%lld", &a, &b);
printf("%lf\n", C(a, b));
return 0;
}