Respostas
respondido por:
0
Tem duas formas de calcular fatorial
Uma é iterativa, ou seja, fazendo um loop assim
def fatorial(numero):
fat = 1
for x in range(2,numero+1):
fat *= x
return fat
Super eficiente .... só que tem outra forma ... chamada "recursiva" que é muito legal.
O fatorial de um número n qualquer é o n * fatorial(n-1)
Por exemplo, fatorial de 4 é igual ao 4 * fatorial(3)
O fatorial de 3 então é 3 * fatorial(2)
o fatorial de 2 então é 2 * fatorial(1)
o fatorial de 1 então é 1 * fatorial(0)
O fatorial de 0 é definido como 1.
Então a função fica assim
def fatorial_recursivo(numero):
if numero:
return numero * fatorial(numero-1)
else:
return 1
observe o if... não se faz comparação alguma. É um truque que o Python permite. Qualquer valor DIFERENTE de 0 é considerado True no Python.
Então esse if na verdade significa
if numero != 0:
Uma é iterativa, ou seja, fazendo um loop assim
def fatorial(numero):
fat = 1
for x in range(2,numero+1):
fat *= x
return fat
Super eficiente .... só que tem outra forma ... chamada "recursiva" que é muito legal.
O fatorial de um número n qualquer é o n * fatorial(n-1)
Por exemplo, fatorial de 4 é igual ao 4 * fatorial(3)
O fatorial de 3 então é 3 * fatorial(2)
o fatorial de 2 então é 2 * fatorial(1)
o fatorial de 1 então é 1 * fatorial(0)
O fatorial de 0 é definido como 1.
Então a função fica assim
def fatorial_recursivo(numero):
if numero:
return numero * fatorial(numero-1)
else:
return 1
observe o if... não se faz comparação alguma. É um truque que o Python permite. Qualquer valor DIFERENTE de 0 é considerado True no Python.
Então esse if na verdade significa
if numero != 0:
Perguntas similares
6 anos atrás
6 anos atrás
6 anos atrás
8 anos atrás
8 anos atrás
8 anos atrás
9 anos atrás
9 anos atrás