public static void main(String[] args) {
// create new instance of random class
Random rand = new Random();
// set variable num to be a random number between 0 and 10
int user = rand.nextInt(10);
// set output equal to the result of our function
int password = check_password(user);
// print result
System.out.println(password);
}
// returns the factorial of the given input- by what number i is
// i can be less than or equal to 10
public static int check_password(int user) {
int log = 1;
for (int i = 1; i <= user; i++) {
log = log * i;
}
return log;
}
我对答案如何高于10感到困惑,当您在eclipse中运行代码时,我不明白它如何打印答案: 40320 120 6 5040 24 2 1个 362880
我应该弄清楚代码的作用并将其写在代码中的注释中
答案 0 :(得分:0)
您的“ check_password”方法实际上是在计算数字的阶乘。例如,如果数字生成为5,则您的方法将返回120。因此,由于10的阶乘为3628800,因此输出可能远高于10。
答案 1 :(得分:0)
无论将int用户设置为多少,for循环都会循环多次。每次循环,它将执行log * i
。我正在循环的哪个迭代中。因此,如果用户随机设置为5,它将循环5次。第一个循环将执行1 * 1
,将日志设置为1。下一个循环将执行1 * 2
,将日志设置为2。第三个循环将执行2 * 3
,将日志设置为6,依此类推。当int user随机设置为5时,最终日志将为120。您将返回log的最终值,并将其设置为等于密码,然后打印出密码。这就是为什么您要打印的值大于10的原因。