import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
//https://www.lanqiao.cn/problems/629/learning/
public class Main {
static List<List<Integer>>lists=new ArrayList<>();
public static void main(String[] args) {
int[]nums=new int[9];
for (int i = 0; i < nums.length; ++i) {
nums[i]=i+1;
}
f(0,nums);
long max=0;
for (List<Integer> list:lists ) {
for (int i = 1; i < 9; ++i) {
long a=0;
int x=1;
for (int j = i-1; j>=0 ; --j) {
a+=list.get(j)*x;
x*=10;
}
long b=0;
x=1;
for (int j = 8; j >=i; --j) {
b+=list.get(j)*x;
x*=10;
}
long res=a*b;
if (check(res)){
System.out.println("a:"+a+" b:"+b+" res:"+res);
max=Math.max(max,res);
}
}
}
System.out.println(max);
}
private static boolean check(long res){
Set<Character>set=new HashSet<>();
for (int i = 1; i <=9 ; ++i) {
set.add((char) ('0'+i));
}
String s=String.valueOf(res);
if (s.length()!=9)return false;
for (int i = 0; i < s.length(); ++i) {
set.remove(s.charAt(i));
}
return set.size() == 0;
}
private static void f(int k,int[]nums){
if (k==9){
lists.add(Arrays.stream(nums).boxed().collect(Collectors.toList()));
return;
}
for (int i = k; i < nums.length; ++i) {
int t=nums[i];nums[i]=nums[k];nums[k]=t;
f(k+1,nums);
nums[k]=nums[i];nums[i]=t;
}
}
}
01-19
1145
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交