【发布时间】:2014-04-25 02:38:59
【问题描述】:
下面的代码用于使用递归来填充奇数数组并重载。在转向重载之前,我一直在尝试编写一种递归方法,它可以在不使用重载的情况下完成相同的工作,只使用一个参数,它是一个整数,而不是原始数组;但是,我想不出一种方法来不每次递归都创建一个新数组。任何人都可以用提示/伪代码/其他任何能让我在不重载的情况下编写此方法的方法来启发我吗?即使下面的代码有效,我也无法放弃我的好奇心。 是的,我是最近学习递归的初学者。
public static int[] oddNumbers( int index ) {
if(index<1){
return null;
}
else if(index==1){
return oddNumbers(1, new int[1]);
}
else{
return oddNumbers(index, new int[index]);
}
}
public static int[] oddNumbers(int index, int[] array){
if(index==1){
array[index-1]=index*2-1;
return array;
}
else{
array[index-1]=index*2-1;
return oddNumbers(index-1, array);
}
}
编辑:感谢所有 cmets。他们都很有帮助。
【问题讨论】:
-
为什么要用奇数填充数组?这对您有什么帮助?
-
不一定是奇数。我正在用数组练习递归。