什么是回文数?
回文数指的是正序和倒序读都是一样的数,例如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));
}
}
}
微信公众号:每日学习干货↓