В основном вы объявили новый int с именем n.В цикле for вы инициализировали n равным 1, а затем запустили цикл for до n> 5. Если мы расширим цикл for, вы сделаете следующие вызовы:
System.out.println(mystery(1));
System.out.println(mystery(2));
System.out.println(mystery(3));
System.out.println(mystery(4));
System.out.println(mystery(5));
В mystery () вы объявляетедва целых числа: х и у.Вы инициализируете y в k (параметр, который вы получили из вызова метода).В цикле for вы инициализировали x в 1 и выполняли цикл for до тех пор, пока x> (k-1).Это запускает цикл к-1 раз.Затем вы умножали y на (kx) каждый раз, когда запускали цикл.Когда x> (k-1), вы вернули y.
Давайте возьмем, к примеру, mystery (5).Я расширю цикл for в mystery (), чтобы вы могли лучше его визуализировать.
int x,y;
y = 5;
y = y * (5 - 1); //y*4
y = y * (5 - 2); //y*3
y = y * (5 - 3); //y*2
y = y * (5 - 4); //y*1
return y;
Математически mystery (5) = 5 * 4 * 3 * 2 * 1 = 120 Итак, mystery ()является факториальной функцией.mystery (5) = 5 !, mystery (4) = 4 !, и т. д.