そのようなパズルがあります:「店の状態は:ソーダのボトルのための3本の空のボトルは:?彼はまで変更することができますどのように多くのソーダのボトル、ソフトドリンクの10本の空き瓶の張手をとることができます」

ここに方法は次のとおりです。

ペットボトルの3本のボトルを飲むソーダの3本と引き換えに9つの空き瓶、と最初は現在、2つの空のボトルが空に上司に、その後、ありますが、ボトルの残りの部分の前に、ボトル(+ 1〜3)のためにこれらを運ぶプラスボトル、ソーダの瓶と引き換えに(3 + 1 + 1)、そこにnは空き瓶であり、どのくらいのソーダを交換することができ尋ねた場合は、5フラットソーダまで交換することができますので、その後、戻って上司に空き瓶を飲みますか?

 

最初のアイデアを考えてみましょう:最初の考慮事項は、最小の開始から計算されます

F(1)= 0

F(2)= 1

F(3)= 1

F(4)= F(2)+1

F(5)= F(3)+1

F(N)= F(N-2)+ 1

得られた式はF(N)= F(N-2)+ 1であります

結果:nが結果が2削除されています

 

ここでは、Pythonプログラミングを使用します:

 

while True:
    try:
        a=int(input())
        if a !=  0:
            print(a//2)   
    except:
        break

 

実行次のように以下の試験結果でした:

>?10
5
>?81
40
>?300
150
>?99
49

 

 

 

おすすめ

転載: blog.csdn.net/weixin_40294256/article/details/95065069