Объясните пожалуйста подробно по шагам, что происходит на каждом шаге этого кода
Два часа уже бьюсь, никак не могу понять принципа, понятно только, что происходит до значения = 1, а куда оно return'ится и что дальше происходит - "темный лес".
class Factorial {
int fact(int n) {
int result;
if (n == 1) {
return 1;
}
result = fact(n - 1) * n;
return result;
}
}
class Recursion {
public static void main(String args[]) {
Factorial f = new Factorial();
System.out.println("Факториал 3 равен " + f.fact(3));
}
}