我不知道如何找到最小的阶乘数 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);
}
问题很不清楚,问题说“找到最小的阶乘”任何数字的最小阶乘总是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);
}
}