0
Pascalの再帰的なプロシージャ/ファンクションで、複数の基本ケースを持つことができるかどうかは疑問でした。 もしそうなら、私にの簡単なの例を教えてください。なぜこれが可能か説明してください。再帰メソッドはパスカルで複数の基底を持つことができますか?
Pascalの再帰的なプロシージャ/ファンクションで、複数の基本ケースを持つことができるかどうかは疑問でした。 もしそうなら、私にの簡単なの例を教えてください。なぜこれが可能か説明してください。再帰メソッドはパスカルで複数の基底を持つことができますか?
簡単なフィボナッチ数列は、二つの基地のケースがあります。
f(0) = 0
f(1) = 1
f(n) = f(n - 1) + f(n - 2)
そして、もちろん、あなたはパスカルでそれを書くことができます。
function Fib(n: integer): integer;
begin
if n = 0 then Fib := 0
else if n = 1 then Fib := 1
else Fib := Fib(n - 1) + Fib(n - 2)
end;
これは本当にパスカル固有の問題ではありません。答える方法については、基本的な事例が何であるか考えてみてください。ほとんどの言語では、再帰関数内で特定の条件のチェックが行われ、条件を満たす場合は再帰呼び出しを行うことなく結果を返します。非再帰呼び出しのケースにつながる可能性がある条件のセットが複数あることがありますか?私はその質問に答えるためにあなたを残すでしょう。それに基づいて、例を考案するのは簡単であるはずです。 – lurker