📜  C程序计算nPr的值(1)

📅  最后修改于: 2023-12-03 14:40:27.125000             🧑  作者: Mango

C程序计算nPr的值

nPr表示从n个元素中取出r个元素,且顺序不同的所有可能组合的个数。nPr的计算公式为:

nPr = n! / (n-r)!

其中,n表示集合中一共有n个元素,r表示取出的元素个数。

下面是一个C程序,用来计算nPr的值。

#include <stdio.h>

// 计算阶乘
int factorial(int n) {
    int result = 1;
    for (int i = 1; i <= n; i++) {
        result *= i;
    }
    return result;
}

// 计算nPr
int permutation(int n, int r) {
    return factorial(n) / factorial(n - r);
}

int main() {
    int n, r;

    printf("请输入n和r的值:\n");
    scanf("%d %d", &n, &r);

    if (n < r) {
        printf("错误:n必须大于等于r!\n");
        return 1;
    }

    int result = permutation(n, r);

    printf("%dP%d = %d\n", n, r, result);

    return 0;
}

代码说明:

  1. 首先定义了一个函数factorial,用来计算一个数的阶乘。它通过一个for循环,累乘每个数字,最终得到结果。

  2. 接着定义了一个函数permutation,用来计算nPr的值。它直接调用了factorial函数,并根据公式计算出nPr的值。

  3. 在主函数main中,先从用户输入n和r的值,然后判断n是否大于等于r,如果不满足,输出错误提示信息并退出程序。

  4. 最后,调用permutation函数,计算出nPr的值,并输出结果。

通过这个程序,我们可以方便地计算nPr的值,从而更好地理解组合数学的概念。