-1

誰かが私にこれを説明してもらえますか。

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

うさぎが 2 に等しい場合、答えは 4 ではなく 3 になるように思えます。答えが 4 であることはわかっていますが。

4

2 に答える 2

6

手動で再帰をアンロールして、すべてのバニーに 2 つの耳が実際に追加されることを確認できます。

bunnyEars(2) => 2 + bunnyEars(1) => 2 + (2 + bunnyEars(0)) => 2 + (2 + 0) => 4
于 2013-06-07T22:40:58.473 に答える
3
bunnyEars(2) == 2 + bunnyEars(1) ==
2 + (2 + bunnyEars(0)) == 2 + (2 + 0) == 4
于 2013-06-07T22:39:48.533 に答える