プログラミング初心者です。

int f(int n)
{
    if(n==0)
        return 0;
    else
        return n + f(n-1);
}

上記コードにおいて,f(5)を求めるとき、アウトプットが15となるのですが、
なぜこのようになるかわかりません。

個人的には return 5 + f(4) となり、f(4)は3ですので合計8だと考えたのですが、なぜこのような違いが生じるかご教示いただけますと幸いです。

どうぞよろしくお願いいたします。