Exercício 19: Construir um programa que utiliza uma função recursiva para prodN calcular o produto de 1 até n .
Passo 1
A questão pede para criar um programa que usa recursão para calcular o produto de todos os inteiros de 1 até n, ou seja, calcular
. O conteúdo envolvido é recursão em programação, e vamos precisar entender o que são caso base e chamada recursiva.
Passo 2
Em recursão, definimos um caso base para interromper as chamadas e, fora dele, fazemos a chamada recursiva. Para nosso produto, o caso base é quando
, retornando 1. Para
, temos:
Passo 3
Agora, montamos um pseudocódigo simplificado para guiar a implementação:
- Função prodN(n):
- Se n
1, retorna 1 - Senão, retorna n * prodN(n-1)
- Se n
- No programa principal, lê n do usuário, chama prodN(n) e exibe o resultado.
Passo 4
Por fim, vamos traduzir esse pseudocódigo para C. Explicando rápido: incluímos a biblioteca stdio.h, escrevemos a função recursiva prodN, lemos o valor de n em main, chamamos prodN(n) e imprimimos o produto.
Resposta
#include <stdio.h>
long prodN(int n) {
if (n <= 1)
return 1;
return n * prodN(n - 1);
}
if (n <= 1)
return 1;
return n * prodN(n - 1);
}
int main() {
int n;
printf(“Digite um valor para n: “);
scanf(”%d”, &n);
printf(“Produto de 1 até %d = %ld\n”, n, prodN(n));
return 0;
}
int n;
printf(“Digite um valor para n: “);
scanf(”%d”, &n);
printf(“Produto de 1 até %d = %ld\n”, n, prodN(n));
return 0;
}