- 本人解法 比较笨
public class Main { // 测试代码 public static void main(String[] args) { // 定义一个字符串用于连接五个数字 int sum = 0; for (int i = 10; i <= 99; i++) { for (int x = 100; x <= 999; x++) { String str = ""; Boolean flag = true; str = str + i; str = str + x; // 用于记录每个字母出现的次数 int[] arr = new int[10]; for (int y = 0; y < 5; y++) { String s = String.valueOf(str.charAt(y)); int value = Integer.parseInt(s); arr[value]++; if (arr[value] == 2 ||value ==0) { flag = false; break; } } if (flag == true) { String s1 = ""; String s2 = ""; s1 = s1 + String.valueOf(str.charAt(0)); s1 = s1 + String.valueOf(str.charAt(3)); s1 = s1 + String.valueOf(str.charAt(1)); s2 = s2 + String.valueOf(str.charAt(2)); s2 = s2 + String.valueOf(str.charAt(4)); int s3 = Integer.parseInt(s1); int s4 = Integer.parseInt(s2); if ((s3 * s4) == (i * x)) { sum++; } } } } System.out.println(sum); } }
*另一种解法
public static void main(String[] args) { int sum = 0; for (int a = 1; a <= 9; a++) { for (int b = 1; b <= 9; b++) { if (b != a) { for (int c = 1; c <= 9; c++) { if (c != b && c != a) { for (int d = 1; d <= 9; d++) { if (d != c && d != b && d != a) { for (int e = 1; e <= 9; e++) { if (e != d && e != c && e != b && e != a) { if ((a * 10 + b) * (c * 100 + d * 10 + e) == (a * 100 + d * 10 + b)* (c * 10 + e)) { sum++; System.out.println(sum); } } } } } } } } } } } }