再帰再帰変更

このコンテンツは、実際には非常に簡単です。

私たちは、再帰的なプロセスは非常に複雑であり、分析には明確にすることができない、いくつかの問題の再帰が発生します。

再帰:この時点では、良いことがあります。

例:

NOIP2017-PJ・予選:完璧なプログラムT3:

書式#include <iostreamの>
 使用して 名前空間はstdを、
INTのN、M。

INT findans(整数 nは、INTのM){
     場合(N == 0戻りM。
    もし(M == 0リターン N%3 戻り( - N findansを1、M) - findans(N、M - 1)+ findans(N - 1、M - 1 )。
} 

int型のmain(){ 
    CIN >> N >> M。
    COUT << findans(N、M)<<endl;
    リターン 0 ; 
}

入力:$ \ {テキスト5 6} $

あなたは再帰的なツリーを記述する場合、無い分の1以下のページが書かれていると推定されます。

それはそれを行うにはどのようにすべきですか?

我々は$ F_ {I、J} $は$ \テキスト結果{findans(i、j)は} $で定義し、その後、いくつかの明白な結論があるでしょう。

$のF_ {0、X}のx $、$のF_ = {Xを、0}のx%3 $を=

次に、漸化式が得られる:$ F_ {I、J} =のF_ {I-1、J} - F_を{I、J-1} + F_ {I-1、J-1} $

その後、我々は、すべての$ F_マトリックス、配信リリース$ F(n、m)は$缶に取り付けられ、{I、J} $を置くことができます。

おすすめ

転載: www.cnblogs.com/zengpeichen/p/11348774.html