将192分别与1、2、3相乘:
192 * 1 = 192
192 * 2 = 384
192 * 3 = 576
连接这些乘积,我们得到一个1至9全数字的数192384576。我们称192384576为192和(1,2,3)的连接乘积。
同样地,将9分别与1、2、3、4、5相乘,得到1至9全数字的数918273645,即是9和(1,2,3,4,5)的连接乘积。
对于n > 1,所有某个整数和(1,2, … ,n)的连接乘积所构成的数中,最大的1至9全数字的数是多少?
output : 932718654
public static int pandigitalMultiples() {
int max = 0;
//因为 n>1,所以这里i<10000
for(int i=1; i<10000; i++) {
String product = "";
for(int j=1;j<10; j++) {
product = product + (i*j);
if(product.length() > 9)
break;
if(repetiton(product))
continue;
if(product.length() == 9) {
if(max < Integer.parseInt(product)) {
max = Integer.parseInt(product);
}
}
}
}
return max;
}
public static boolean repetiton(String i) {
ArrayList<String> List = new ArrayList<String>();
for(int j=0; j<i.length(); j++) {
if(i.charAt(j) == '0' || List.contains(i.charAt(j) + "")) {
return true;
}
List.add(i.charAt(j) + "");
}
return false;
}
public static void main(String[] args) {
System.out.println(pandigitalMultiples());
}