【JAVA】:回文数字

Python016

【JAVA】:回文数字,第1张

import java.util.Scanner

public class Main{

    static final int start = 10001

    static final int end = 999999

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in)

        int t

        StringBuilder sb

        int sum

        boolean su

        while (sc.hasNextInt()) {

            su = false

            t = sc.nextInt()

            for (int i = start i <= end i++) {

                sum = 0

                sb = new StringBuilder(String.valueOf(i))

                if (sb.toString().equals(sb.reverse().toString())) {

                    for (int j = 0 j < sb.length() ++j) {

                        sum += sb.charAt(j) - '0'

                    }

                    if (sum == t) {

                        su = true

                        System.out.println(i)

                    }

                }

            }

            if (!su) {

                System.out.println(-1)

            }

        }

        sc.close()

    }

}

如果不能AC,优化一下: 对每个i,转为(字符或整数)数组,对数组从索引0到长度的一半遍历,判断对称位置是否相同,且各位数字和是否符合要求.

System.out.println("请输入...")

Scanner in = new Scanner(System.in)

String number = in.next()

System.out.println("您输入的是"+number)

boolean flag = true

for(int i=0i<number.trim().length()/2i++){

//把索引为i位置的字符和它对称索引位置的字符相比,看是否一样

if(!String.valueOf(number.charAt(i)).equals(String.valueOf(number.charAt(number.trim().length()-i-1)))){

flag = false

break

}

}

if(flag){

System.out.println("它是回文数")

}else{

System.out.println("它不是回文数")

}

没有加上对输入数据的合法性校验,如果有需要的话,你可以自行对number进行检查,例如校验number是不是数字,是不是负数等等