3
respostas

Fatorial incremento i--

Pessoal, estou usando compilador do tutorialpoint.com e cheguei nessa solução. Está correto ou redundante esse código?

using System.IO;
using System;

class Program
{
    static void Main()

    {
        int fatorial = 5;
        int resultado = 1;
        for (int i = fatorial; i > 1; i--)
        {
            resultado += resultado * (i - 1);
        }
        Console.WriteLine("Fatorial de " + fatorial + ": " + resultado);        

    }
}
3 respostas

Oi Patrick, vc rodou? pq essa fatorial deveria 5 4 3 2 1. Do jeito que vc fez, acho que não está considerando o valor da variável fatorial em si.

Outro detalhe é que vc não precisa incrementar, só deveria fazer resultado=resultado * (i);

Oi Patrick, seu código está correto, o fatorial de 5 é 120, porém está extremamente complicado de entender essa lógica.

Você pode resumir a isso:

using System.IO;
using System;

class Program
{
    static void Main()

    {
        int fatorial = 5;
        int resultado = 1;
        for (int i = fatorial; i > 1; i--)
        {
            resultado *= i;
        }
        Console.WriteLine("Fatorial de " + fatorial + ": " + resultado);        

    }
}

Inicia : resultado = 1 , i = 5

Primeira passagem vai ficar: resultado = 5, i = 4

Segunda: resultado = 20, i = 3

Terceira: resultado = 60, i = 2

Quarta: resultado = 120, i = 1

Não vai ter uma quinta pois o i vai deixar de ser > que 1