计挑-21-编程1

从大于等于N的正整数里找到一个最小的数M,使之满足:M和M的逆序数(如1230的逆序数为321)的差的绝对值为一个[100000,200000]区间内的值。

输入说明:起始数字N;
输出说明:找到的第一个符合条件的数,如果没有符合条件的数,输出F。
输入样例:123456
输出样例:123462

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer stringTokenizer = new StringTokenizer(br.readLine());

        int n = Integer.parseInt(stringTokenizer.nextToken());

        for(int i=n;i<Integer.MAX_VALUE;i++){
            int temp = Math.abs(i-reverseInt(i));
            System.out.println(i+"->"+temp);
            if(temp>=100000&&temp<=200000){
                System.out.println(i);
                return;
            }
        }
        System.out.println('F');
    }

    /**
     * 反转一个整数
     */
    public static int reverseInt(int n){
        int res = 0;
        while (n != 0) {
            // 这里的控制简单粗暴
            if (res > Integer.MAX_VALUE / 10 || res <Integer.MIN_VALUE / 10) return 0;
            res = res * 10 + n%10;
            n /= 10;
        }
        return res;
    }
posted @ 2022-11-22 22:55  YaosGHC  阅读(119)  评论(0)    收藏  举报