Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Вычисление факториала


Автор: turtles 22.9.2011, 11:52
Здравствуйте! Подскажите по коду что можно еще дописать или переделать?
программу, вычисляющая факториал
натурального числа n, которое пользователь введёт с клавиатуры.

Как еще можно убрать 1, если например я делаю ввод отрицательного числа там мне выдает "Вы ввели отрицательный факториал!", а над ним выдает  1?

Код

public class Test {
    public static void main(String args[]) {
       int n;
        do {
            Scanner scan = new Scanner(System.in);
             System.out.print("Введите факториал натурально числа n : ");
              n = scan.nextInt();
               int result = 1;
                for (int i = 2; i <= n; i++)
                  result *= i;
                  System.out.println(result);
                if (n == 0 || n == 1)
                 System.out.println(result);
             if(n < 0)
             System.out.println("Вы ввели отрицательный факториал!");
        } while (n < 0);{System.out.println("Конец");}
    }
}




Автор: jk1 23.9.2011, 04:22
Чтобы проверка происходила перед вычислением надо написать её перед вычислением
Код

public class Test {
    public static void main(String args[]) {
        int n;
        do {

            Scanner scan = new Scanner(System.in);
            System.out.print("Введите факториал натурально числа n : ");
            n = scan.nextInt();
            if (n < 0) {
                System.out.println("Вы ввели отрицательный факториал!");
                continue;
            }
            int result = 1;
            for (int i = 2; i <= n; i++)
                result *= i;
            System.out.println(result);
            if (n == 0 || n == 1)

                System.out.println(result);

        } while (n < 0);
        {
            System.out.println("Конец");
        }
    }
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)