笔试

 

问题描述:

对于一个非负整数我们称它是美丽的当且仅当它的十进制表示下不包含多个相同的数字。比如 1234,7523

都是美丽的,但 99,121,3043 等都不是美丽的。现在给出一个数字n,你需要找到比n大的,最小的美

丽的数。

输入描述:

第一行包含一个整数n1000 ≤ 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;
             }
         }




    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值