如何在阶乘 Java 中找到最小的数

问题描述 投票:0回答:1

我不知道如何找到最小的阶乘数 java,我在网上搜索该怎么做,但没有任何帮助。 它说要做这样的事情,但我不明白:

120/1 = 120 => 120/2 = 60 => 60/3 = 20 => 20/4 = 5 => 5/5 = 0 在这种情况下,我们的数字“5”

继承人我的代码:

public class {
        public static void main(String[] args){
           Scanner scan = new Scanner(System.in);
           long i, fact = 1;
           long n = scan.nextLong();
           for (i = 1; i <= n; i++){
             fact = fact*i;

         }
         System.out.println(fact);

      }
java windows factorial
1个回答
0
投票

问题很不清楚,问题说“找到最小的阶乘”任何数字的最小阶乘总是1.

但是在您的测试用例中,您似乎正在尝试找出最大的阶乘。 (尽管 5/5 = 1 而不是 0)。

这是在给定范围 (n) 中查找最大阶乘的代码:

public class class {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        long i, fact = 120, lastFact=1;
        long n = scan.nextLong();
        for (i = 1; i <= n; i++) {
            if(fact%i == 0){
                fact /= i;
                lastFact = i;
            }
            if(fact < 2){
                break;
            }
        }
        System.out.println(lastFact);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.