アプリケーションのタイトル:ダック知っていますか?
質問の意味:男は村が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 ; }