prod()方法在这个Java程序中做了什么?

时间:2015-04-16 15:19:46

标签: java math recursion methods multiplication

public class Prod {

public static void main(String[] args) {
    System.out.println(prod(1, 4));
}

public static int prod(int m, int n) {
    if (m == n) {
        return n;
    } else {
        int recurse = prod(m, n-1);
        int result = n * recurse;
        return result;
    }
}
}

这是我难以理解的书中的练习。为什么程序不仅会在两个数字相等之前递归,然后返回n?此外,它说,

int result = n * recurse;

如何将int n乘以递归(int, int)?如何将一个整数乘以一组两个整数?

我以什么方式误解了这个节目?

编辑:这是一个不同的问题,因为我没有使用因子

1 个答案:

答案 0 :(得分:2)

prod(x,y)时,

y!相当于x=1。 如果x1不同,那么它会执行递归乘法(y * (y- 1) * (y -2) .... )直到y = x。 假设y > x

顺便说一句,如果x > yprod()会崩溃。