Faça uma função recursiva que receba um número inteiro positivo par N e imprima todos os números pares de 0 até N em ordem decrescente.

Passo 1

O enunciado pede uma função recursiva que receba um inteiro positivo par N e imprima todos os números pares de 0 até N em ordem decrescente. Vamos usar o conceito de recursão, definindo um caso base (quando N=0) e um caso recursivo (quando N>0) para “descer” de N até 0 de dois em dois.

Passo 2

Definir o caso base da recursão. Quando N=0, não há mais números pares abaixo de zero que interessem; então nesse momento imprimimos 0 e encerramos a chamada recursiva. Isso evita chamadas infinitas.

Passo 3

Definir o caso recursivo. Para N>0, primeiro imprimimos o próprio N, depois invocamos a função recursivamente passando N-2. Como N é par, N-2 também será par até o caso base.

Passo 4

Escrever a função em C (ou pseudocódigo equivalente), respeitando a pré-condição de que N é par e não negativo. A função testa se N é zero; caso contrário, faz o “print” e chama a si mesma com N-2.

Passo 5

Exemplo de chamada: se N=8, a sequência impressa será
86420

Resposta

#include <stdio.h>

// Função recursiva que imprime pares de \(0\) até \(N\) em ordem decrescente.
// Pré-condição: \(N\) é inteiro, \(N \geq 0\) e \(N\) é par.
void imprimeParesDec(int N) {
    if (N == 0) {
        printf("%d\n", 0);
    } else {
        printf("%d\n", N);
        imprimeParesDec(N - 2);
    }
}

// Exemplo de uso
int main() {
    int N = 8;          // pode ser qualquer par \(\geq 0\)
    imprimeParesDec(N);
    return 0;
}

Exercícios relacionados