fork(2) download
  1. #include<stdio.h>
  2.  
  3. unsigned long nCm(int, int);
  4. int gcd(int, int);
  5.  
  6. int main() {
  7. int n, m;
  8. scanf("%d,%d", &n, &m);
  9. printf("%lu\n", nCm(n, m));
  10. return 0;
  11. }
  12.  
  13. /*
  14. nCm
  15. = (n /m) * n-1Cm-1 (0< m <n)
  16. = 1 (otherwise)
  17. */
  18. unsigned long nCm(int n, int m) {
  19.  
  20. if (!(0 < m && m < n)) {
  21. return 1;
  22. }
  23. int g = gcd(n, m);
  24. return (n / g) * (nCm(n - 1, m - 1) / (m / g));
  25. }
  26.  
  27. //最大公約数を求める
  28. int gcd(int a, int b) {
  29. if (b == 0) {
  30. return a;
  31. }
  32. return gcd(b, a % b);
  33. }
Success #stdin #stdout 0s 9432KB
stdin
Standard input is empty
stdout
1