题意:给了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;
}