Java Factorial Расчет для программы не может сделать 0,1,2 Как я могу это исправить - PullRequest
0 голосов
/ 06 марта 2019
// Factorial Calculation
                double factorial = 1;
                factorial = firstNumber;
                for(double i = factorial-1; i > 1; i--){
                       factorial = factorial * i;
                       // Makes result equal to the firstNumber
                       result = factorial;
                     // To continue the program
                     continue;

                 }
                // Displays the result for factorial
                System.out.println("factorial of " + firstNumber + " is " + form.format(result));
                // To continue the program
                    continue;

Итак, я должен использовать калькулятор, используя операторы переключения, все работает, кроме случаев, когда я делаю факториальный расчет, если я ввожу 0,1 или 2, ответ всегда равен 0, но от 3 до 10 ответ всегдаправильный.Итак, firstNumber - это переменная, которую вводит пользователь.Факториал - это число, которое он вычислит. Мне нужно было сделать так, чтобы при отображении моего сообщения первый номер равнялся числу, а не результату.

1 Ответ

0 голосов
/ 06 марта 2019

Ваш result предположительно инициализирован на 0 (например, int result = 0;).

Что происходит, когда вы вводите число меньше 3, это означает, что factorial-1 меньше 2, а поскольку мы имеем дело с целыми числами, это означает, что оно не больше 1. Условием вашего цикла является то, что i должно быть больше , чем 1, поэтому вы никогда не входите в свой цикл, и result никогда не изменяется от его начального значения. Быстрое решение может быть просто изменить i > 1 на i > 0; умножение на 1 в любом случае не повредит.

Вам также следует инициализировать result до 1, поскольку вы не будете вводить свой цикл для значений 0 и 1, но это нормально, поскольку их факториалы равны 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...