Java Factorial计算程序不能做0,1,2如何解决这个问题

问题描述 投票:-4回答:1
// 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;

所以我必须使用switch语句一切都有效,除非我进行阶乘计算,如果我输入0,1或2,答案总是0,但从3到10,答案总是正确的。所以firstNumber是用户输入的变量。因子是它计算的数字我必须这样做,所以当我显示我的消息时,firstNumber等于数字而不是结果。

java factorial
1个回答
0
投票

你的result可能被初始化为0(例如int result = 0;)。

发生的事情是,当你输入一个小于3的数字时,这意味着factorial-1小于2,并且由于我们处理的是整数,这意味着不大于1。你的循环的条件是i必须大于1,所以你永远不会进入你的循环,并且result永远不会改变它的初始值。快速修复可能只是将i > 1更改为i > 0;无论如何,乘以1都没有害处。

你也应该将result初始化为1,因为你不会输入值为01的循环,但这很好,因为它们的阶乘都是1

© www.soinside.com 2019 - 2024. All rights reserved.