0

質問のタイトルが改善される可能性があります。私が話す内容に特定の名前がある場合はお知らせください。

これも特定の言語向けではありません。私が使用したすべての言語は、関数呼び出しを式として同じように扱います。

だから私は再帰と末尾呼び出しについて読んでいたので、このコードをC++で書きました

#include <iostream>
using std::cout;

int test(int num) {
    if (num > 0) {
        return test(num - 1);
    }
}

int fact(int num) {
    return num == 0 ? 1 : num*fact(num - 1);
}

int main() {
    cout << test(20) << '\n';
    return 0;
}

もちろん、基本ケースは であるため、test(num)常に0ifと評価されます。num > 0n = 0

しかし、なぜ?言語は何を返す必要があるかをどのように認識しますか? test(n - 1)何を評価するべきかをどのように知るのですか?

編集;

数値の階乗を取得する再帰的な方法を含めました。C++ (または任意の言語) は、何を乗算するかをどのように知るのnumでしょうか?

4

0 に答える 0