Java练习题2021-1

"从大于等于N的正整数里找到一个最小的数M,使之满足:

M和M的逆序数(如1230的逆序数为321)的差的绝对值为一个[100000,200000]区间内的值。

输入说明:起始数字N;

输出说明:找到的第一个符合条件的数,如果没有符合条件的数,输出F。

输入样例:123456

输出样例:123462

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入数字");
        int N = scanner.nextInt();
        //看是几位数
        int Breaknum = 0;
        while (true) {

            String n_length = N + "";
            int len = n_length.length();

            int daoXuNUM = 0;
            for (int i = 1; i <= len; i++) {

                // 1234

                if (i == 1) {
                    // 4
                    daoXuNUM = N % 10;
                }
                // 40 + 3 = 43
                if (i == 2) {
                    daoXuNUM = (daoXuNUM * 10) + (N / 10) % 10;
                }
                //430+2
                if (i == 3) {
                    daoXuNUM = (daoXuNUM * 10) + (N / 100) % 10;
                }
                if (i == 4) {
                    daoXuNUM = (daoXuNUM * 10) + (N / 1000) % 10;
                }
                if (i == 5) {
                    daoXuNUM = (daoXuNUM * 10) + (N / 10000) % 10;
                }
                if (i == 6) {
                    daoXuNUM = (daoXuNUM * 10) + (N / 100000) % 10;
                }
            }


        int num = N - daoXuNUM;
        if (num < 0) {
            num = num * -1;
        }
        if (num > 100000 && num < 200000) {
            System.out.println(N);
            break;
        } else {
            N++;
        }
        Breaknum ++;

        if (Breaknum ==100){
            System.out.println("F");
            break;
        }
    }
    }
}

Java练习题2021-1_第1张图片

你可能感兴趣的:(java,开发语言)