【发布时间】:2020-11-01 15:06:51
【问题描述】:
我正在尝试制作一个超级基本的程序来练习递归。所以我目前正在尝试将4个数字相加,这是我使用的方法:
public static void recurr(int[] iarr, int target) {
if (iarr.length==1 ) {
if (iarr[0]==target)
System.out.println(iarr[0]);
} else {
for (int ii =0; ii< iarr.length/2;ii++) {
int p = iarr[ii] + iarr[iarr.length-ii-1];
int[] piarr=new int[1];
piarr[0]=p;
recurr(piarr,target);
}
}
此方法递归地添加两个数字,但不是 4 个数字及以上。因此,如果我将 1,2,3,4 给 array ,它将添加 1 和 2,然后将添加 3,4 但不会添加 3 和 7,这是相加的结果。如何解决?
【问题讨论】:
-
一种学习方法是尝试手动写出步骤,然后在代码中实现这些步骤。这不是很递归,如何结束的测试也有点不稳定。尝试解决这些问题,它会帮助您解决整个问题。