递归的递归方法请帮助

时间:2013-12-13 01:34:52

标签: java

任何人都可以帮助我完成这个项目

编写一个递归方法,将所有值从k向上乘以n并返回结果(作为double)。例如:如果k = 5,n = 10,则乘以5 * 6 * 7 * 8 * 9 * 10返回151200。

在java代码中

public static int multiply(int k, int n) {
if(k == n) {
    return k;
}
return k * multiply(k, n-1);
}

1 个答案:

答案 0 :(得分:0)

进行任何递归的第一部分是定义一个基本案例。在这种情况下,您的基本情况是k等于n,在这种情况下,该方法应返回k

接下来,处理给定输入不起作用的情况(例如,如果k以大于n的数字开头)。也许返回0或什么?

一旦你掌握了这两件事,就做一个递归的部分。 k应该向n增长。


编辑完成后,你就非常接近了。

您只需要更改退货声明即可。正如我所说,k需要向n增长,但是nk缩小。这样做:

return k * multiply(k+1, n);

正如您目前所写的那样,在k * k * k ...减少到等于n之前,您将返回k。这实际上仅knth

使用此返回功能会在k * k + 1 * k + 2 * k + 3 ...增加到k之前为您n