Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình C

Chương trình C tính tổ hợp (nCr) và hoán vị (nPr)

nCr (Combination): Chọn r đối tượng từ n, không quan tâm thứ tự. nCr = n! / (r! * (n-r)!)

nPr (Permutation): Sắp xếp r đối tượng từ n, có thứ tự. nPr = n! / (n-r)!

Chương trình C

#include <stdio.h>

long factorial(int);
long find_ncr(int, int);
long find_npr(int, int);

int main() {
    int n, r;
    long ncr, npr;
    printf("Nhập n và r:\n");
    scanf("%d%d", &n, &r);
    ncr = find_ncr(n, r);
    npr = find_npr(n, r);
    printf("%dC%d = %ld\n", n, r, ncr);
    printf("%dP%d = %ld\n", n, r, npr);
    return 0;
}

long find_ncr(int n, int r) {
    return factorial(n) / (factorial(r) * factorial(n-r));
}

long find_npr(int n, int r) {
    return factorial(n) / factorial(n-r);
}

long factorial(int n) {
    long result = 1;
    for (int c = 1; c <= n; c++) result *= c;
    return result;
}

Kết quả

Nhập n và r: 5 2
5C2 = 10
5P2 = 20