Calcular Permutação e Combinação em Linguagem C

CBeginner
Pratique Agora

Introdução

Permutação e combinação são dois conceitos matemáticos distintos. Permutação é o arranjo de objetos em uma ordem específica. Combinação é a seleção de objetos de um conjunto sem considerar a ordem dos objetos selecionados. Neste laboratório, aprenderemos como calcular permutação e combinação usando a linguagem C.

Escrever a função principal (main)

Primeiramente, vamos criar um novo arquivo chamado main.c no diretório ~/project/ e escrever o código inicial para incluir arquivos de cabeçalho e a função principal.

#include <stdio.h>

int main() {
    printf("Permutação e Combinação em Linguagem C\n\n");
    // Código para cálculo de permutação e combinação será adicionado aqui
    return 0;
}

Escrever a função fatorial

Para calcular permutação e combinação, precisamos calcular o fatorial de um número. Fatoriais podem ser calculados recursivamente. Adicione o seguinte código fora da função principal.

long factorial(int num) {
    if (num == 0) {
        return 1;
    }
    else {
        return num * factorial(num - 1);
    }
}

Esta função recebe um inteiro como argumento e retorna seu fatorial.

Escrever a função para calcular nCr (combinação)

Adicione a seguinte função fora da função principal para calcular nCr.

long nCr(int n, int r) {
    if (n < r) {
        return -1;
    }
    else {
        return factorial(n) / (factorial(r) * factorial(n - r));
    }
}

Esta função recebe dois inteiros, n e r, como argumentos e retorna o valor nCr. O valor nCr é calculado dividindo o fatorial de n pelo produto do fatorial de r e o fatorial de n-r.

Escrever a função para calcular nPr (permutação)

Adicione a seguinte função fora da função principal para calcular nPr.

long nPr(int n, int r) {
    if (n < r) {
        return -1;
    }
    else {
        return factorial(n) / factorial(n - r);
    }
}

Esta função recebe dois inteiros, n e r, como argumentos e retorna o valor nPr. O valor nPr é calculado dividindo o fatorial de n pelo fatorial de n-r.

Escrever o código driver do programa

Adicione o seguinte código dentro da função principal para receber as entradas e exibir os resultados.

int main()
{
    int n, r;

    printf("Enter the value of n:");
    scanf("%d", &n);
    printf("Enter the value of r:");
    scanf("%d", &r);

    printf("nCr is %ld\n", nCr(n, r));
    printf("nPr is %ld\n", nPr(n, r));

    return 0;
}

Este código recebe os valores de entrada para n e r do usuário e chama as funções nCr() e nPr() para calcular os respectivos valores e, em seguida, os exibe.

Código Completo

O código final se parece com o seguinte.

#include <stdio.h>

long factorial(int num) {
    if (num == 0) {
        return 1;
    }
    else {
        return num * factorial(num - 1);
    }
}

long nCr(int n, int r) {
    if (n < r) {
        return -1;
    }
    else {
        return factorial(n) / (factorial(r) * factorial(n - r));
    }
}

long nPr(int n, int r) {
    if (n < r) {
        return -1;
    }
    else {
        return factorial(n) / factorial(n - r);
    }
}

int main()
{
    int n, r;

    printf("Enter the value of n:");
    scanf("%d", &n);
    printf("\nEnter the value of r:");
    scanf("%d", &r);

    printf("nCr is %ld\n", nCr(n, r));
    printf("nPr is %ld\n", nPr(n, r));

    return 0;
}

Resumo

Neste laboratório, aprendemos como calcular permutação e combinação na linguagem C. Escrevemos as funções para calcular fatorial, nCr e nPr. Também escrevemos o código de driver para o programa. Seguindo os passos acima, podemos calcular permutação e combinação para as entradas do usuário.