问题描述:
对于一个非负整数我们称它是美丽的当且仅当它的十进制表示下不包含多个相同的数字。比如 1234,7523
都是美丽的,但 99,121,3043 等都不是美丽的。现在给出一个数字n,你需要找到比n大的,最小的美
丽的数。
输入描述:
第一行包含一个整数n。1000 ≤ n ≤ 9000
输出描述:
输出对应的答案,若不存在满足条件的数,输出-1。
输入样例 1:
1987
输出样例 1:
2013
输入样例 2:
2013
输出样例 2:
2014
private static int isBeauty(int x){
if(x>1000 && x<9000){
while (true){
int i,j,k,l;
/*i = x/1000;
j = (x%1000)/100;
k = (x-(i*1000+j*100))/10;
l = x -(i*1000+j*100+k*10);*/
i = x%10;
j=(x/10)%10;
k = (x/100)%10;
l=(x/1000)%10;
if(i!=j && i!=k && i!=l && j!=k && j!=l && k!=l){
// System.out.print(x);
return x;
}else{
return 0;
}
}
}else{
return -1;
}
}
public static void main(String[] args){
Scanner s = new Scanner(System.in);
int N = s.nextInt();
int x = 0;
x = N+1;
while (true) {
int index = isBeauty(x);
if (index == 0) {
x++;
//System.out.print(index);
}else {
System.out.print(index);
break;
}
}
}