- Este tópico contém 1 resposta, 2 vozes e foi atualizado pela última vez 3 anos, 6 meses atrás por IcaroFilho.
-
AutorPosts
-
-
1 de junho de 2021 às 00:01 #68234HENRIQUE DE ANDRADEParticipante
como seria essa resolução
-
1 de junho de 2021 às 08:53 #68245IcaroFilhoModerador
Bom dia Henrique,
Sabendo que um número fatorial é um número natural inteiro positivo calculado pela multiplicação desse número por todos os seus antecessores até chegar ao número 1.
Podemos proceder da seguinte maneira:- Uso de biblioteca.
O Python vem nativamente com a biblioteca math, com diversas “ferramentas” prontas, bastando apenas importa-las.
tratando-se da utilização de uma unica função, podemos chamar apenas o “factorial” do modulo “math”.
from math import factorial
para calcular basta chamar a função.num = int(input("Digite um número: ")) f = factorial(num)
Para configurarmos a saída de modo a ficar – ex.: 5! = 5 x 4 x 3 x 2 x 1 = 120
precisamos criar um laço.
utilizei o range(x,y,z) onde: x = valor inicial, y = valor final, z = passo (negativo = decrescente)for n in range(num,0,-1): if n ==1: print(n, f" = {f}") else: print(n, end=" x ")
esta condição foi criada para que seja substituído o ultimo “x” por “=”.
Segue o codigo copleto:from math import factorial num = int(input("Digite um número: ")) f = factorial(num) print(f"calculando {num}! =", end =" ") for n in range(num,0,-1): if n ==1: print(n, f" = {f}") else: print(n, end=" x ")
- Na mão
Para variar, iremos , ao inves de usar for, utilizar o while (sabendo-se que também é possível usar o for).
Neste processo iremos ter que criar um contador e um acumulador, tendo as seguintes variaveis.num = int(input("Digite um número: ")) cont = num fat = 1
O acumulador fat será um por se tratar de uma multiplicação. Caso fosse um acumulador para soma, seria 0.
Agora precisamos criar nosso laço.
Ele terá inicio no número informado e ocorrerá ate chegar a 1, ou seja:
while cont > 0:
agora teremos que fazer o acumulador trabalhar: ele receberá ele mesmo multiplicado pelo valor do contador.
fat = cont * fat
após executar o primeiro trecho dentro do while, faremos quem que exiba o valor do contador para montar a equação na tela (da mesma forma que o processo anterior).if cont == 1: print(f'{cont} = {fat}') else: print(f'{cont} x ', end ="")
Agora no final do bloco temos que decrescer 1 do nosso contador para que o loop tenha um fim.
cont -= 1
Segue o codigo completo:
num = int(input("Digite um número: ")) cont = num fat = 1 print(f"calculando {num}! =", end =" ") while cont > 0: fat = cont * fat if cont == 1: print(f'{cont} = {fat}') else: print(f'{cont} x ', end ="") cont -= 1
- Uso de biblioteca.
-
-
AutorPosts
- Você deve fazer login para responder a este tópico.