朝日新聞2006年2月24日のパズル横丁問題

問題

A,Bの二人が階段を昇り始める。両名とも右足から昇り始め,最初の一歩は2段飛ばし,途中1段飛ばしを何回か交え,最後は2段飛ばしに変更して同時に異なる足で登り切る。

階段は最低何段必要か。

解答への道(ヒント)

階段の段数に関しては以下の通り。

x:2段飛ばしの回数
y:1段飛ばしの回数
z:2段飛ばしの回数
全体の階数:3*x + 2*y + 3*z

A,Bの両名が異なる足で着くということは

x + y + z が奇数と偶数になるということ

人間向けに出題された問題なので,x,y,zが10以内に答えが見つかるだろうという前提に立ってプログラムすると以下のようになる。

for( int x=1; x< 10; x++) {
  for( int y=1; y< 10; y++) {
    for( int z=1; z< 10; z++) {
      if( x+y+z == 偶数) {
        既に奇数の時 3*x + 2*y + 3*z が出現したか?
        出現したら答え! 出力してプログラム終了
      }
      else {
        既に偶数の時 3*x + 2*y + 3*z が出現したか?
        出現したら答え! 出力してプログラム終了
     }
    }
  }
}

答えは1件出力されました(1件出力したら終了するようにしているので当然と言えば当然か)。

 

カーリングってテレビ向きの競技だな。しかも生放送向き。

若い子が一所懸命やっているのを見るとみんな可愛く見えちゃう。自分も歳をとったと実感する。

フィギュアスケートで荒川静香選手が金メダル。おめでとうございます。

解速度