本帖最后由 李凯 于 2013-4-11 11:56 编辑
这是论坛活动的题目,看到题目首先我也想到用递归的方式比较好,因为递归能够拆分复杂的问题变成很多小问题,并一一解决。但是问题来了,虽然知道递归比较好,可是发现不会用递归。于是,我就百度了一下,结果就得到了如下代码,结果是对的,但是我没弄明白,也没弄明白这道题目的解题思路。特别拿出来请教一下,这个递归算法。最好能有递归算法资源让我学习学习。
注:我并非有意泄露论坛活动的题目。如果有人用如下代码应付论坛活动,均与本人无关。我只是为了学习。才拿出来请教。我因为做不了所以也并没用此答案来回答论坛活动。
public class Test9 {
//定义牛的总数
static int count=1;
public static void main(String[] args) {
add(0,0);
System.out.println(count);
}
private static void add(int nian,int age){
//度过的年
nian++;
//牛的年龄
age++;
//如果在10年之内
if(nian<=10){
//如果牛的年龄大于或者等于3
if(age>=3){
//累加牛的总数
count++;
add(nian,0);
}
add(nian,age);
}
}
} |