3.湊算式 (結果填空)
B DEF
A + --- + ------- = 10
C GHI
(如果顯示有問題,可以參見【圖1.jpg】)
這個算式中A~I代表0~9的數字,不同的字母代表不同的數字。
比如:
6+8/3+952/714 就是一種解法,
5+3/1+972/486 是另一種解法。
這個算式一共有多少種解法?
注意:你提交應該是個整數,不要填寫任何多余的內容或說明性文字。
提醒:此題雖然可以用暴力破解去解決,但是要注意DEF和GHI分別是一個三位數,不能拆開當成一個個數字去乘;還有為了避免分母不為0的情況盡量將分式轉化為整式。(或者B和DEF乘以1.0轉化為double,然后可以直接除以C和GHI了)
1 public class _3湊算式 { 2 public static void main(String[] args) { 3 int sum = 0; 4 for (int a = 1; a < 10; a++) { 5 for (int b = 1; b < 10; b++) { 6 for (int c = 1; c < 10; c++) { 7 for (int d = 1; d < 10; d++) { 8 for (int e = 1; e < 10; e++) { 9 for (int f = 1; f < 10; f++) { 10 for (int g = 1; g < 10; g++) { 11 for (int h = 1; h < 10; h++) { 12 for (int i = 1; i < 10; i++) { 13 if ((a!=b&&a!=c&&a!=d&&a!=e&&a!=f&&a!=g&&a!=h&&a!=i)&& 14 (b!=c&&b!=d&&b!=e&&b!=f&&b!=g&&b!=h&&b!=i)&& 15 (c!=d&&c!=e&&c!=f&&c!=g&&c!=h&&c!=i)&& 16 (d!=e&&d!=f&&d!=g&&d!=h&&d!=i)&& 17 (e!=f&&e!=g&&e!=h&&e!=i)&& 18 (f!=g&&f!=h&&f!=i)&& 19 (g!=h&&g!=i)&& 20 (h!=i)) { 21 int shang = d*100+e*10+f; 22 int xia = g*100+h*10+i; 23 if (((a*c*xia)+(b*xia)+(shang*c)) -(10*c*xia) ==0) { 24 sum++; 25 } 26 } 27 } 28 29 } 30 31 } 32 33 } 34 35 } 36 } 37 } 38 39 } 40 } 41 System.out.println(sum); 42 } 43 }
運行結果:29