unsigned nChoosek( unsigned n, unsigned k )
{
if (k > n) return 0;
if (k * 2 > n) k = n-k; //remove the commented section
if (k == 0) return 1;
int result = n;
for( int i = 2; i <= k; ++i ) {
result *= (n-i+1);
result /= i;
}
return result;
}
#include <stdio.h>
int main(void)
{
printf("600 choose 3 is: %d\n", nChoosek
(600, 3)); return 0;
}
dW5zaWduZWQgbkNob29zZWsoIHVuc2lnbmVkIG4sIHVuc2lnbmVkIGsgKQp7CiAgICBpZiAoayA+IG4pIHJldHVybiAwOwogICAgaWYgKGsgKiAyID4gbikgIGsgPSBuLWs7ICAvL3JlbW92ZSB0aGUgY29tbWVudGVkIHNlY3Rpb24KICAgIGlmIChrID09IDApIHJldHVybiAxOwoKICAgIGludCByZXN1bHQgPSBuOwogICAgZm9yKCBpbnQgaSA9IDI7IGkgPD0gazsgKytpICkgewogICAgICAgIHJlc3VsdCAqPSAobi1pKzEpOwogICAgICAgIHJlc3VsdCAvPSBpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKfQoKI2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKQp7CiAgICBwcmludGYoIjYwMCBjaG9vc2UgMyBpczogJWRcbiIsIG5DaG9vc2VrKDYwMCwgMykpOwogICAgcmV0dXJuIDA7Cn0=