题意:给了p, q, r, s四个数字,求C(p, q) / C(r, s)。
题解:直接计算,因为乘除运算顺序不定,可以边乘边除。
#include <stdio.h>
#include <algorithm>
using namespace std;
int main() {
int p, q, r, s;
while (scanf("%d%d%d%d", &p, &q, &r, &s) == 4) {
q = min(q, p - q);
s = min(s, r - s);
double res = 1.0;
for (int i = 1; i <= q || i <= s; i++) {
if (i <= q)
res = res * (p - i + 1) / i;
if (i <= s)
res = res * i / (r - i + 1);
}
printf("%.5lf\n", res);
}
return 0;
}