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

Passo 1

O enunciado pede uma função recursiva que, dada uma entrada inteira positiva N, imprima todos os números naturais de 0 até N em ordem decrescente (ou seja, de N a 0). O conteúdo usado aqui é recursão, que exige definir um caso-base para interromper chamadas e um caso recursivo que reduz o problema.

Passo 2

Precisamos primeiro identificar o caso-base da nossa recursão, que é a situação em que não faremos mais chamadas recursivas. Como queremos parar quando chegarmos a 0, podemos usar o teste if (n == 0) para imprimir 0 e encerrar.

Passo 3

Em seguida, definimos o caso recursivo: sempre que n > 0, imprimimos o valor atual n e fazemos uma chamada recursiva com n - 1. Isso garante que em cada nível da pilha de chamadas o valor diminui até atingir o caso-base.

Passo 4

Juntando caso-base e caso recursivo, escrevemos a função completa. A função imprime primeiro n, depois chama a si mesma com n-1. Quando n chega a 0, imprime 0 e retorna, encerrando toda a recursão.

Resposta

void imprimeDecrescente(int n) {
if (n == 0) {
printf("%d\n", 0);
return;
}
printf("%d\n", n);
imprimeDecrescente(n - 1);
}

Exercícios relacionados