基本的java递归

时间:2013-06-07 22:37:37

标签: java recursion

有人可以向我解释一下。

public int bunnyEars(int bunnies) {
   if(bunnies == 0) {
       return 0;
   }
   return 2 + bunnyEars(bunnies - 1);
}

在我看来,兔子的答案是否等于2 将是3而不是4.尽管我知道答案应该是4.

2 个答案:

答案 0 :(得分:6)

您可以手动展开递归以验证它确实为每个兔子添加了2个耳朵

bunnyEars(2) => 2 + bunnyEars(1) => 2 + (2 + bunnyEars(0)) => 2 + (2 + 0) => 4

答案 1 :(得分:3)

bunnyEars(2) == 2 + bunnyEars(1) ==
2 + (2 + bunnyEars(0)) == 2 + (2 + 0) == 4