java递归的格式问题
珠江的风 2013-05-20 09:19:44 最近遇到递归的问题很多,在网上查了一下,发现有如下格式:
权限修饰符+(static)+函数返回类型+函数名(参数列表){
if(递归结束条件){递归结束终值赋值语句;return 返回值;}
else{累计计算+循环调用函数语句;
return 返回值;}
}
上面的的"递归结束终值赋值语句"和"累计计算+循环调用函数语句"是什么意思,递归函数一定是static方法吗?
然后研究了一下下面这道题:
public static List<Integer> max5(List<Integer> lst) {
if (lst.size() <= 5)
return lst;
int a = lst.remove(0);
List<Integer> b = max5(lst);
for (int i = 0; i < b.size(); i++) {
int t = b.get(i);
if (a > t) {
b.set(i, a);
a = t;
}
}
return b;
}
public static void main(String[] args) {
List<Integer> lst = new Vector<Integer>();
lst.addAll(Arrays.asList(12, 127, 85, 66, 27, 34, 15, 344, 156, 344, 29, 47));
System.out.println(max5(lst));
System.out.println(f(5));
}
这段程序也是递归算法吧,已经出现了if关键字了,但是else关键字却没有出现,若要添加else关键字,要怎么添加,请高手指点!!谢谢