朝日新聞2004年7月10日のパズルパーク問題

問題

以下の矩形に1から9の数字を1つずつ入れて数式を完成させる。

解答への道(ヒント)

数字の割り当て問題なので以下のように文字を割り当て制約処理を書くだけで簡単に答が求まる。

制約処理は以下の通り。数字は1から9までなので,jを削除し,for文の=0を=1からにする。

int x = (a*10+b)*e*g*i + d*c*g*i + f*c*e*i + h*c*e*g;
int y = c*e*g*i;
if( x / y == 4 && x % y == 0) {
  ps( "%d%d/%d + %d/%d + %d/%d + %d/%d\n", a,b,c,d,e,f,g,h,i);
}

答えは複数出力されるが,AB/C以外は並び順を無視すれば同一になる。

解速度