能不能帮我写个 程序找出n个自然数(互不相等)中r个数的组合有多少种

能不能帮我写个 程序找出n个自然数(互不相等)中r个数的组合有多少种
输出个数
深秋雨 1年前 已收到1个回答 举报

napoleonricky 幼苗

共回答了15个问题采纳率:86.7% 举报

#include

int g(int a, int b) {
int c;
while (b) {
c = a % b;
a = b;
b = c;
}
return a;
}

int C(int n, int r) {
int ans = 1;
int i, gc;
if (r > n || r < 0) return 0;
if (n - r < r) r = n - r;
for (i = 1; i <= r; i++) {
gc = g(n - i + 1, i);
ans /= i / gc;
ans *= (n - i + 1) / gc;
}
return ans;
}

int main() {
int n, r;
while (scanf("%d%d", n, r) == 2) {
printf("%dn", C(n, r));
}
}

1年前

8
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.045 s. - webmaster@yulucn.com