fib(1) = fib(2) = 1
fib(i) = fib(i - 1) + fib(i - 2) i は3以上の時、
fib(i) を以下のプログラムで計算する時、fib(i) を計算するのに加算が何回行われるか、
fib(i) を使って示せ。

int fib(int i){
if(i <=2){ return 1;}
int answer = fib(i-1) + fib(i-2);
return answer;
}

という問題なんですが、上記プログラムでの加算回数と、
このプログラムより加算回数が少ないプログラムは何になるのでしょうか?