是什么方法PROD()在这个Java程序吗?(What does the method prod()

2019-10-22 16:20发布

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) 它如何由一组两个整数相乘一个整数?

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

编辑:这是一个不同的问题,因为我不使用阶乘

Answer 1:

prod(x,y)相当于y!x=1 。 如果x是不同于1 ,则其操作的方式递归倍增(y * (y- 1) * (y -2) .... )直到y = x 。 假设y > x

顺便说一句,如果x > y ,然后prod()会崩溃。



文章来源: What does the method prod() do in this Java program?