アルゴリズムは少し毎日(2)ビット - 再帰アルゴリズムを:アヒルは知っています

アプリケーションのタイトル:ダック知っていますか?

質問の意味:男は村が2羽のアヒルを残し、多くのカモが出発をキャッチしていたか彼に尋ねたので、後のn、急いで半分と2羽のアヒルを販売する村を各村を販売するアヒル、それぞれを駆動しますか?

分析:アヒル残りremain2 = remain1 / 2-2アヒル上の第二村後左remain1 = S / 2-2アヒルの最初の村、後こと、Sあります。ように、n個の村を通じて、残る(N)=質問の意味、(N-1)/ 2-2アヒルまま、最後に2が左。残る(N)= 2。2 *、後方に押し戻さremian(N-1)利用できる=(2 +残ります)。実装再帰。n = 0の場合でも、再帰的な境界条件を忘れないでください、2羽のアヒルがあります。

 

次は、達成するためのコードを使用します。

#include <iostreamの>
 使用して 名前空間STD; 

// SUMアヒル、N村。
// 最初の村= SUM remain1 / 2-2後;
 // = remain1 remain2 / 2-2秒村スルー;
 // n番目村をremainnは=残る(N-1) / 2-2 2 =; 

//    SUM =(F(REMAIN)+2)* 2; 

INT duckSum(INT N-)
{ 
    IF(N> = 1 リターン(duckSum(N - 1)+ 2)* 2 ;
     
        戻り 2 
} 
int型のmain()
{ 
    int型N-。
    一方、真の
    { 
        COUT << " 経過村の数を入力してください" << ENDL; 
        CIN >> N-; 
        のprintf(" 合計アヒルは%D \ N- " 、duckSum(N-)); 
    } 
    戻り 0 ; 
}

おすすめ

転載: www.cnblogs.com/yinniora/p/12109142.html