HDU_牛の牛肉文字列EOF(再帰)

牛の牛肉のEOF文字列

問題の説明:
今年の夏のACM訓練チーム6つのチームに分かれて18人、の合計。雄牛の04、XCとCOY組成物の05でEOFと呼ばれるチームがあります。一般的な生活の中でのトレーニングは、私たちは深い友情、この燃える情熱を記念して何かをする準備ができて雄牛、一瞬のための考えを確立し、雄牛は準備ができて、自宅から最高級のビーフジャーキーの一部をもたらしました上記だけ「E」「O」「Fの列の刻まれた 」 配列牛を抑制しつつ、nは、(1つまたは2つの文字であってもよいが、他の文字があってはならない)文字の三種類O隣接する状況は、怒りの目のように、彼は信じている、「OO」のルックスが登場効果が良くありません。

あなたは、NEW ACMerは、EOFの賛美者は、それの合計の要件を満たすためにどのように多くの異なる文字列をカウントする牛を助けることができますか?

PSは:社長はどのように幸せなビーフジャーキーの一部を取ったとき小さな秘密がある牛、杭州エレクトリック50周年に神秘的な贈り物として、ビーフジャーキーが刻まEOFを入れて準備ができて、それは考えられます!ここでは、牛にACMerハング電気のおかげに代わって、私をお許しください!

おかげで再び!

入力

テストケースは、複数の各テストケースのための1つの列、整数Nの組成、(0 <N <40)を含む入力データ。

出力

各テストケースのために、出力完全なコーティングは、例えば、各行の出力を要件を満たすために。

サンプル入力
1
2
サンプル出力
3
8

再帰的なアイデア:
1、n番目の時間がOである場合、EはN-1位置に置くことができ、[N-2] * 2種と文字のF二種類(EFを交換することができるように)
2 n番目の値はOでない場合には、nは1位のEを置くことができ、O、Fは、制限がない、[N-1] * 2種は、(n値は、E、Fとすることができるような)があります。
したがって、リリース配信式は、[N] =( [N-1] + [N-2])* 2。

#include<iostream>
using namespace std;
const int N=45;
int main()
{
 	int n;
	while(cin>>n)
	{
	   long long a[N];
	   a[1]=3;
	   a[2]=8;
	   for(int i = 3; i <= n;i++)
	   {
	    a[i] = (a[i - 1] + a[i - 2]) * 2;
   	}
   cout<<a[n]<<endl;
  }
}

再帰的に見て他のトピック:
平面を分割する破線(再帰的)
神は、神と神(再帰)

公開された34元の記事 ウォン称賛85 ビュー4627

おすすめ

転載: blog.csdn.net/weixin_45895026/article/details/103841041