つきのうさぎ

   つきの
  うさぎは
 おもちつき
  もちつき
+  うさぎ
----------
つきのうさぎ


中学1年生くらいのときに、「詰将棋パラダイス」で見た懸賞クイズ。
とてもきれいな覆面算だったので、詩として覚えていた。

「美少女戦士セーラームーン」が世に出るのは、このクイズの数年後。
セーラームーンの主人公の名前を聞いたとき、大爆笑した覚えがある。

以下のようなプログラムを VisualBasic で書いてはいけません。
エレガントじゃないソースだし、そもそも「1つの正答と5つの誤答」を吐き出してしまう。



Module Module1
Sub Main()
Dim つ As Integer = 0
Dim き As Integer = 0
Dim の As Integer = 0
Dim う As Integer = 0
Dim さ As Integer = 0
Dim ぎ As Integer = 0
Dim は As Integer = 0
Dim お As Integer = 0
Dim も As Integer = 0
Dim ち As Integer = 0
Dim つきの As Integer
Dim うさぎは As Integer
Dim おもちつき As Integer
Dim もちつき As Integer
Dim うさぎ As Integer
Dim つきのうさぎ As Integer

For つ = 0 To 9
For き = 0 To 9
If つ = き Then つ = つ + 1
For の = 0 To 9
If の = き Or の = つ Then の = の + 1
For う = 0 To 9
If う = つ Or う = き Or う = の Then う = う + 1
For さ = 0 To 9
If さ = つ Or さ = き Or さ = の Or さ = う Then さ = さ + 1
For ぎ = 0 To 9
If ぎ = つ Or ぎ = き Or ぎ = の Or ぎ = う Or ぎ = さ Then ぎ = ぎ + 1
For は = 0 To 9
If は = つ Or は = の Or は = う Or は = さ Or は = ぎ Then は = は + 1
For お = 0 To 9
If お = つ Or お = の Or お = う Or お = さ Or お = ぎ Or お = は Then お = お + 1
For も = 0 To 9
If も = つ Or も = き Or も = の Or も = う Or も = さ Or も = ぎ Or も = は Or も = お Then も = も + 1
For ち = 0 To 9
If ち = つ Or ち = き Or ち = の Or ち = う Or ち = さ Or ち = ぎ Or ち = は Or ち = お Or ち = も Then ち = ち + 1
つきの = つ * 100 + き * 10 + の
うさぎは = う * 1000 + さ * 100 + ぎ * 10 + は
おもちつき = お * 10000 + も * 1000 + ち * 100 + つ * 10 + き
もちつき = も * 1000 + ち * 100 + つ * 10 + き
うさぎ = う * 100 + さ * 10 + ぎ
つきのうさぎ = つ * 100000 + き * 10000 + の * 1000 + う * 100 + さ * 10 + ぎ
If つきの + うさぎは + おもちつき + もちつき + うさぎ = つきのうさぎ And _
つ + き + の + う + さ + ぎ + は + お + も + ち = 45 Then
Console.Write("つ=" & つ & _
" き=" & き & _
" の=" & の & _
" う=" & う & _
" さ=" & さ & _
" ぎ=" & ぎ & _
" は=" & は & _
" お=" & お & _
" も=" & も & _
" ち=" & ち & vbNewLine)
End If
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub
End Module


しっかし、2バイト文字を変数名に使えるなんて、悪魔の言語だね。

このエントリーをはてなブックマークに追加

コメント (2)

  1. 楽しそうなパズルですね。
    プログラムは全く分かりませんが
    地道に解いてみようと思います。

    中学生の時にはまった
    「孤独の7」というパズルを
    思い出しました。
    これも楽しいので挑戦してみて下さい。

  2. 「そんなぁ、『孤独の7』とだけ言われても・・・」
    と思ったのですが、検索したらヒットしますね。
    有名なんですね。

コメントを残す

メールアドレスが公開されることはありません。