palindrome

什么是回文数?

回文数指的是正序和倒序读都是一样的数,例如121从左到右,从右到左读都是121。任何一个自然数与它的倒序数相加,所得的和再与和的倒序数相加,……如此反复进行下去,经过有限次步骤后,最后必定能得到一个回文数。

问题:判断一个数是否为回文数,是返回true,否侧抛出false。


@题目来源lettcode

利用Java的StringBuilder通过把整数转换为字符串来实现↓



import java.util.Scanner;
/**
 * @Author: Wizard
 * @Date: 2020/4/12 13:14
 */
public class palindrome {
    public static boolean ispalindrome(int i) {
        String str = (new StringBuilder(i + "")).reverse().toString();
        return (i + "").equals(str);
    }
    public static void main(String[] args) {
        while (true) {
            System.out.println("输入需要判断的整数");
            Scanner scanner = new Scanner(System.in);
            int str1 = scanner.nextInt();
            System.out.println(ispalindrome(str1));
        }
    }
}
/**
 * 输入需要判断的整数:1
 * false
 * 输入需要判断的整数:12121
 * true
 */

进阶:不改变整数为字符串

通过取整和取余获取整数中的数字进行比较
/**
 * @Author: Wizard
 * @Date: 2020/4/12 13:14
 */
public class palindrome {
    public static boolean ispalindrome(int i) {
        if(i<0||(i%10==0&&i!=0))
            return false;
        int number = 0;
        while(i>number){
            number = number * 10 + i % 10;
            i /=10;
        }
        return i == number || i==number/10;
    }
    public static void main(String[] args) {
        while (true) {
            System.out.println("输入需要判断的整数");
            Scanner scanner = new Scanner(System.in);
            int str1 = scanner.nextInt();
            System.out.println(ispalindrome(str1));
        }
    }
}
微信公众号:每日学习干货↓

                                                 

Licensed under CC BY-NC-SA 4.0
Last updated on Mar 23, 2024 06:11 UTC
让过去的过去,给时间点时间
Built with Hugo
Theme Stack designed by Jimmy