versão for do exercicio 60

Home Fóruns Python versão for do exercicio 60

Visualizando 1 resposta da discussão
  • Autor
    Posts
    • #68234
      HENRIQUE DE ANDRADE
      Participante

      como seria essa resolução

    • #68245
      IcaroFilho
      Moderador

      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:

      1. 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 ")
      2. 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
Visualizando 1 resposta da discussão
  • Você deve fazer login para responder a este tópico.