Visual Basicで覆面算を計算するにはどうしたらいいのでしょうか?
以下のような問題がとける方、回答をお願いします。
○ 問題
(文字にあらゆる数字を順に入れて、正解を探す。)
ただし、ルールの1~3を満足するプログラムとすること。
c a b
+) b a c
----------
d a b a
答えなどは次のように表示するようにプログラミングする。
² 一番初めに、アクティブシート(Sheet1)の中のすべての
セルの内容をクリアする。
² 次にセルA1に「覆面算の答え」の文字列を、A2~G2に、
a, b, c, d, x, y, zの文字を記入する。
² プログラムの実行(ルール1~3を考慮した、繰り返し文)に
より、最初に覆面算を満足するよう得られたa, b, c, d,
x, y, z(整数)をA3~G3に記入する。
² 複数の答えがある場合には、以降に得られたa, b, c, d,
x, y, zをA4~G4、A5~G5、¢ ¢ ¢ に順に記入するよう
にする。
² 最後に、答えの記されている次の行のA列目のセルに「答
えは」、C列目のセルに「通り」、B列目のセルに実際の答
えの数(何通りか)を記すようにしてプログラムを終える。
※ 上の文中で文字列を囲っている「」のセル中への表示は不要。
loop(繰り返し処理)文やfor next 文を使う。
ここからは参考までに。
a b
+)b a
--------
a a c
² 覆面算のルール
ルール1 : 文字はそれぞれの桁の文字を表す。
ルール2 : 異なる文字は異なる数字を表し、同じ文字は同じ
数字を表す。
ルール3 : 左端の数字は0ではない。
ルール4 : (パズルとしては)答えが1つになる。
このルールに従うと、上記の覆面算の答えは次のようになる。
1 9
+)9 1
--------
1 1 0
○ 覆面算を力技で解く。
(文字にあらゆる数字を順に入れて、正解を探す。)
例えば
a b b
+)d d c
----------
a a a d
の覆面算を解くことを考える。
覆面算中に現れる3桁(また4桁)の数値は次のように考える。
上記の3桁abbは、a¤100+b¤10+b と考え、これをxとす
る。同様にddc をy、aaad をz としたときx+y=zとなる、
a,b,c,dをループを利用して探す。(結果が得られたならそれが
覆面算の答えになっていることを確認する。)
お礼
回答 有難うございました! そうでしたか~! ふてぶてしい態度で 誰かなって気になってましたが 最後寝ちゃって 観れなかったので気になってました