判断是否是回文数用Java和递归
时间: 2023-12-04 09:03:49 浏览: 146
要判断一个数是否是回文数,可以使用Java编程语言结合递归的方法实现。下面是一个示例代码:
```java
public class Palindrome {
public static boolean isPalindrome(int num) {
String str = String.valueOf(num);
return isPalindromeHelper(str, 0, str.length() - 1);
}
private static boolean isPalindromeHelper(String str, int start, int end) {
if (start >= end) {
return true;
}
if (str.charAt(start) != str.charAt(end)) {
return false;
}
return isPalindromeHelper(str, start + 1, end - 1);
}
public static void main(String[] args) {
int num = 12321;
if (isPalindrome(num)) {
System.out.println(num + " is a palindrome number.");
} else {
System.out.println(num + " is not a palindrome number.");
}
}
}
```
在上述代码中,`isPalindrome` 方法接收一个整数作为参数,并将其转换为字符串。然后,它调用 `isPalindromeHelper` 方法,该方法采用递归的方式来判断字符串是否为回文。
`isPalindromeHelper` 方法中,首先检查 `start` 索引是否大于等于 `end` 索引,如果是,则表示已经比较完字符串的所有字符,返回 `true` 表示是回文数。如果 `start` 和 `end` 索引对应的字符不相等,则返回 `false` 表示不是回文数。
如果以上两个条件都不满足,则递归调用 `isPalindromeHelper` 方法,并将 `start` 索引加1、`end` 索引减1,继续判断下一对字符是否相等。
在示例的 `main` 方法中,我们将一个整数值传递给 `isPalindrome` 方法进行判断,并打印结果。如果是回文数,则输出 "is a palindrome number.",否则输出 "is not a palindrome number."。
你可以根据需要修改传入的整数值来测试该代码。
阅读全文