Exercício 7: Escrever um programa no qual o usuário fornece um valor n e então uma função fatorial fornece o valor de
Fatorial. Deve ser utilizado um for ou um while em Fatorial e a seguinte definição para encontrar o fatorial de n :
Passo 1
A questão pede um programa que leia um valor inteiro não negativo n e calcule n! seguindo a definição recursiva e usando um loop (for ou while). Estamos trabalhando com algoritmos, estruturas de repetição e funções.
Passo 2
Para calcular n!, usamos a definição matemática:
e
. O caso base é n=0, onde o resultado deve ser 1. Para n>0, acumulamos o produto de 1 até n.
Passo 3
Vamos criar a função fatorial em C. Dentro dela, inicializamos uma variável
com 1. Em seguida, usamos um loop for que itera de 1 até n, multiplicando
pelo valor atual do contador em cada passo.
Passo 4
No programa principal (função main), pedimos ao usuário para digitar o valor de n, lemos esse valor com scanf, chamamos fatorial(n) armazenando o retorno e, por fim, exibimos o resultado com printf.
Passo 5
O loop for de 1 até n não é executado quando n=0, portanto
permanece 1, cobrindo corretamente o caso
.
Resposta
#include <stdio.h>
long long fatorial(int n) {
long long resultado = 1;
for (int i = 1; i <= n; i++) {
resultado *= i;
}
return resultado;
}
long long resultado = 1;
for (int i = 1; i <= n; i++) {
resultado *= i;
}
return resultado;
}
int main() {
int n;
printf(“Digite um número inteiro não negativo: “);
scanf(”%d”, &n);
printf("%d! = %lld\n", n, fatorial(n));
return 0;
}
int n;
printf(“Digite um número inteiro não negativo: “);
scanf(”%d”, &n);
printf("%d! = %lld\n", n, fatorial(n));
return 0;
}