任何人都可以帮助我完成这个项目
编写一个递归方法,将所有值从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);
}
答案 0 :(得分:0)
进行任何递归的第一部分是定义一个基本案例。在这种情况下,您的基本情况是k
等于n
,在这种情况下,该方法应返回k
。
接下来,处理给定输入不起作用的情况(例如,如果k
以大于n
的数字开头)。也许返回0或什么?
一旦你掌握了这两件事,就做一个递归的部分。 k
应该向n
增长。
编辑完成后,你就非常接近了。
您只需要更改退货声明即可。正如我所说,k
需要向n
增长,但是n
向k
缩小。这样做:
return k * multiply(k+1, n);
正如您目前所写的那样,在k * k * k ...
减少到等于n
之前,您将返回k
。这实际上仅k
幂nth
。
使用此返回功能会在k * k + 1 * k + 2 * k + 3 ...
增加到k
之前为您n
。