判断回文数
来源:互联网 发布:ig是什么社交软件 编辑:程序博客网 时间:2024/06/08 02:45
如果一个数的反向倒置数和它的顺向数一样,那么这个数称为回文数。编写一个测试程序,提示用户输入一个整数值,然后报告这个数是不是回文数。
我先后一共写了三个函数。
方法一:由于题目要求输入的是整数值,所以按照整数的方法倒置数字,与原数比较即可。
public class Palindrom {public static void main(String[] args) {System.out.println("Enter a integer:");Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();System.out.println(num + (isPalindrom(num)?" is ":" isn't ") + "palindrom");}public static boolean isPalindrom(int num){return num == reverse(num);}public static int reverse(int num) {int length = String.valueOf(num).length();if (length == 1) {return num;}else {return (int)(num / Math.pow(10, length-1)) +reverse((int)(num % Math.pow(10, length-1) )) * 10 ;}}}但是这种方法是错误的。如reverse(101)的结果其实是11而非101,原因是101%10^2的结果是1而不是01。
方法二:将数字当做字符串,将字符串倒置后比较。
public class Palindrom {public static void main(String[] args) {System.out.println("Enter a integer:");Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();System.out.println(num + (isPalindrom(num)?" is ":" isn't ") + "palindrom");}public static boolean isPalindrom(int num){String reverseString = reverse(String.valueOf(num));return num == Integer.valueOf(reverseString);}public static String reverse(String string) {int length = string.length();if (length == 1 ) {return string;}else {return reverse(string.substring(1)).concat(String.valueOf(string.charAt(0)));}}}方法三:在学习了StringBuilder类之后,利用StringBuilder中reverse()方法。
public class Palindrom {public static void main(String[] args) {System.out.println("Enter a integer:");Scanner scanner = new Scanner(System.in);int num = scanner.nextInt();System.out.println(num + (isPalindrom(num)?" is ":" isn't ") + "palindrom");}public static boolean isPalindrom(int num){StringBuilder stringBuilder = new StringBuilder(String.valueOf(num));String reverseString = stringBuilder.reverse().toString();return num == Integer.valueOf(reverseString);}}
0 0
- 回文/回文数的判断
- 回文数回文字符串判断
- 回文数判断
- 判断是不是回文数
- 回文数判断
- 判断回文数
- 判断回文数
- 判断回文数
- 回文数判断
- 如何判断回文数
- C判断回文数
- 判断回文数
- 判断回文数
- 回文数的判断
- java判断回文数
- 判断回文数
- 判断回文数
- 回文数的判断
- 小菜谈谈之缓冲区溢出
- LeetCode 56 Merge Intervals
- 面试之javaSe(二)
- 菜鸟重拾C语言之路(1)
- 【openjudge 1759】最长上升子序列(dp)
- 判断回文数
- Android逆向基础笔记—Android NDK开发2之Windows下的gcc手动编译(交叉连编译)和利Linux Ubuntu系统下的交叉工具链手动编译
- lua function
- Python基础习题(一)
- 线性判别分析
- 莫比乌斯反演
- XUtils3.0快速开发框架
- Android分享之时间日期转换工具类DateTime
- 第12节--支持向量机(SVM)算法在人脸识别上的应用