覆面算
ルール1
文字はそれぞれの桁の文字を表す
ルール2
異なる文字は異なる数字を表し、同じ文字は同じ数字を表す
ルール3
左端の数字は0ではない
ルール4
(パズルとしては)答えが一つとなる
下のプログラムはルール2を完全に考慮していない。
個々の文字は互いに異なるという条件があるからである。
この条件を取り入れるにはこのプログラムをどのように
直したらよいか。該当箇所の変更前と変更後を答えよ。
Option Explicit
Sub ex3()
Dim a As Integer, b As Integer, c As Integer, d As Integer
Dim x As Integer, y As Integer, z As Integer
For a = 1 To 9
For b = 0 To 9
For c = 0 To 9
For d = 1 To 9
x = a * 100 + b * 10 + b
y = d * 100 + d * 10 + c
z = a * 1000 + a * 100 + a * 10 + d
If x + y = z Then
MsgBox "a=" & a & ", b = " & b & ", c = " & c & ", d = " & d
End If
Next d
Next c
Next b
Next a
End Sub