none
Fatoração c# - laço de repetição RRS feed

  • Pergunta

  • Olá! Gostaria de tirar uma dúvida a respeito do meu código. Preciso calcular o fatorial de um número que será digitado pelo usuário e exibir na tela. Porém, não devem ser aceitos números negativos e, por definição, 0! = 1. Mas quando digito o valor 0 não é exibido o número 1. Me ajudem!!!

    int f =1, n;
        
        Console.WriteLine("digite o numero a ser fatorado: ");
        n = int.Parse(Console.ReadLine());
        
        while (n != 1) {
          f = f * n;
          n--;
           if (n < 0) {
             Console.WriteLine("digite um valor positivo.");
             n = int.Parse(Console.ReadLine());
             
           } else
                if (n == 0) {
                f = 1;
              }
           
        }
        Console.WriteLine("o fatorial é {0}", f);
        Console.ReadKey();

    quinta-feira, 3 de maio de 2018 15:03

Respostas

  • Olá.. acredito que neste caso basta fazer a verificação primeiro.

                int f = 1, n;
    
                Console.WriteLine("digite o numero a ser fatorado: ");
                n = int.Parse(Console.ReadLine());
    
                while (n != 1)
                {
                    if (n == 0)
                    {
                        f = 1;
                        break;
                    }
    
                    f = f * n;
                    n--;
                    if (n < 0)
                    {
                        Console.WriteLine("digite um valor positivo.");
                        n = int.Parse(Console.ReadLine());
    
                    }
                    //else
                    //    if (n == 0)
                    //    {
                    //        f = 1;
                    //    }
    
                }
                Console.WriteLine("o fatorial é {0}", f);
                Console.ReadKey();


    abs!

    Cristiano

    quinta-feira, 3 de maio de 2018 17:04

Todas as Respostas

  • Olá.. acredito que neste caso basta fazer a verificação primeiro.

                int f = 1, n;
    
                Console.WriteLine("digite o numero a ser fatorado: ");
                n = int.Parse(Console.ReadLine());
    
                while (n != 1)
                {
                    if (n == 0)
                    {
                        f = 1;
                        break;
                    }
    
                    f = f * n;
                    n--;
                    if (n < 0)
                    {
                        Console.WriteLine("digite um valor positivo.");
                        n = int.Parse(Console.ReadLine());
    
                    }
                    //else
                    //    if (n == 0)
                    //    {
                    //        f = 1;
                    //    }
    
                }
                Console.WriteLine("o fatorial é {0}", f);
                Console.ReadKey();


    abs!

    Cristiano

    quinta-feira, 3 de maio de 2018 17:04
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário, fabor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 30 de maio de 2018 19:37
    Moderador