李白の飲酒問題
タイトル説明
李白がワインを打つ
- ある日、李白がワインを持って出てきました。ジャグには2つのバケツのワインがあり、歩きながら歌いました。
- 何事もなく通りを歩き、ポットを手に取り、すべての店で2倍にし、花に出会ったら振ってください。
- お店に5回会い、10回過ごし、ついに花に会い、ワインを飲みました
- 考えられる解決策を計算する
アイデア分析
バケツ2本のワインを店頭で見ました* 2、ワインが-1消費されたのを見て、ついに花が飲み終わったところ
を見ました。店内で5回、消費時間で10回見ました。
計算してくださいプランの数
この質問は典型的な検索問題です。
終了条件は次のとおりです。ストアを読んだ後、花が1つ、ワインのバケツが1つ残っています。
問題は、5つのショップ、10つの花、1つの検索問題に簡略化されます。ワインのバケツと最後に一輪の花。
コードは以下のように表示されます
private static int count;
private static void countresult(int store,int flowers,int wine) {
if(store==0&&flowers==1&&wine==1) count++;
if(store>0)countresult(store-1,flowers,wine*2);
if(flowers>0)countresult(store,flowers-1,wine-1);
}
public static void main(String[] args) {
countresult(5,10,2);
System.out.println(count);
}
ピットの位置リマインダーとき
私が初めてそれをやった、私は1〜9の花の初期値、およびワインの初期値を設定し、判断が= 0、花= 0ワインに変更されました;
の加算と減算花は結果に影響を与えません。Wineは乗算演算であり、乗算演算は最終結果に影響を与えます。
最終的に結果を得た14