こんにちは、他の再帰プログラムと階乗プログラムに基づいてコーディングしたこのコードがありますが、私の問題は、値を保存して保持し、最後に返す方法について本当に混乱していることです
int factorialfinder(int x)
{
if (x == 1)
{
return 1;
}else
{
return x*factorialfinder(x-1);
}
}
int main()
{
cout << factorialfinder(5) << endl;
}
5が入り、その関数を何度も何度も呼び出して4を掛けると、1になり、階乗の答えが返されます
なぜ?どのように保存されたのかわかりません。なぜ return 1 が実際の答えを返すのですか?実際には何をしているのでしょうか?