Alguém pode me explicar como faço esse exercicios, ou tenha exemplos para me mandar?
Dado um número N, calcular seu fatorial:
N!= N x (N-1) x (N - 2) x .....1
0! = 1 (regra)
1! = 1
2! = 2 x (2 - 1) = 2 x 1 = 2
3! = 3 x (3 - 1) x (3 - 2) = 3 x 2 x 1 = 6
4! = 4 x (4 - 1) x (4 - 2) = 4 x 3 x 2 x 1 = 24
Para fazeres o Factorial de um Numero, tens de fazer uma Função que se chama a si propria.
Para te podermos ajudar melhor, posta aqui o Codigo que ja tens
Vê se serve:program factorial; uses crt; var n: integer; c: char; function calcularfatorial: integer; var i: integer; begin calcularfatorial:= 1; if n=0 then calcularfatorial:= 1 else begin for i:=n+1 downto 2 do calcularfatorial:= calcularfatorial*(i-1); end; end; begin repeat clrscr; writeln('Programa para calcular factorial'); write('Digite um numero inteiro: '); readln(n); writeln('O factorial de ', n,' e ', calcularfatorial); writeln('Deseja sair do programa ? (s/n)'); readln(c); until c='s'; end.
Ta ai a função para o fatoreal:
function Fat(N{e}: integer): integer;
begin
if N = 0 then
Fat := 1
else
Fat := N * Fat(N-1)
end;
ou pode usar assim:
Program Exemplo ;
var fatorial: integer ;
i: integer ;
N: Integer;
Begin
// Solicita o valor de N
write('Informe o Valor de N: ');
readln(N);
// Calcula o fatorial
fatorial:= 1;
for i:= 1 to N do
begin
fatorial:= fatorial * i;
end;
// Mostra resultado
write('O Valor de ', N, ' Fatorial é: ', fatorial);
End.
ou assim:
Program Exemplo ;
Var n: integer;
// Função recursiva que, dado n, retorna n!
Function Fatorial(n:integer): integer ;
Begin
if n > 1 then
Fatorial := n * Fatorial(n-1)
else
Fatorial:= 1;
End;
// Corpo do programa principal
Begin
write('Entre com o valor de n: ');
readln(n);
writeln('Valor de fat(n) => ', Fatorial(n));
readkey;
End.