プログラムというより算数の疑問なんですが…いまフィボナッチ数列作れってプログラム作ってて参考書どおりに書いたんですけど

int fibonacci(int n)
{
if (n == 1 || n == 2)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
の結果が
1=1
2=1
3=2
4=3
5=5 ってなるのが分からんのですけど、n=3の時は3−1+3−2ですよね?
nが−1で減るとして3−1+2−2とも考えたんですけどそれだと4の答えは4になるんじゃないでしょうか?