如何在Java中检查一个数是否为回文数?


回文数可以定义为其数字不遵循递增或递减顺序的正数。

这意味着数字是无序的。

1到100之间没有回文数。

举几个例子:

例1

输入数字为101

让我们使用回文数的逻辑来检查它:

1 > 0 and 0 < 1

因此,101是一个回文数。

例2

输入数字为905

让我们使用回文数的逻辑来检查它:

9 > 0 and 0 < 5

因此,905是一个回文数。

例3

输入数字为245

让我们使用回文数的逻辑来检查它:

2 < 4 but 4 < 5 means all digits are in decreasing order.

因此,245不是一个回文数。

其他一些回文数的例子包括102、564、897等等。

语法

我们可以使用内置的toString()方法将整数值转换为字符串值。

以下是它的语法:

String str = Integer.toString(inputNumber)

我们可以使用charAt()方法从字符串中选择任何索引处的字符。以下是它的语法:

char ch = str.charAt(0);

算法

  • 步骤1 - 通过初始化或用户输入获取一个整数。

  • 步骤2 - 将标志设置为true,并检查数字是否按升序或降序排列。

  • 步骤3 - 如果数字遵循升序或降序,则将标志设置为false。

  • 步骤4 - 打印结果。

多种方法

我们提供了不同的方法来解决这个问题。

  • 使用静态输入值

  • 使用用户自定义方法和charAt()方法

让我们一一查看程序及其输出。

方法1:使用静态输入值

在这种方法中,整数值将在程序中初始化,然后使用算法来检查该数是否为回文数。

示例

import java.util.*; public class Main{ //Main method public static void main(String args[]){ //initialized a number int num = 6549; //printing the given number System.out.println("Given number: "+num); // Checks if the number is less than 100 if(num<100){ System.out.println("The number is not a bouncy number"); } // Boolean values to check if the digits are sorted boolean increasing = true, decreasing = true; // Storing the number in a temporary variable and storing the first digit int temp = num, prev = num % 10; // Loops until the number becomes zero while(temp != 0){ // Checks if it follows increasing order or not if(temp%10>prev){ increasing = false; break; } // Gets the last digit of the number prev = temp % 10; // Removes the last digit temp /= 10; } // Resets the value temp = num; prev = num % 10; while(temp != 0){ // Checks if it follows decreasing order or not if(temp%10<prev){ decreasing = false; break; } // Gets the last digit of the number prev = temp % 10; // Removes the last digit temp /= 10; } // Prints the result if(!increasing&&!decreasing) System.out.println("The number is a bouncy number"); else System.out.println(", The number is not a bouncy number"); } }

输出

Given number: 6549
The number is a bouncy number
.

方法2:使用用户自定义方法和charAt()方法

在这种方法中,将要求用户输入一个整数值,并将此数字作为参数传递给用户自定义方法,然后在方法内部使用算法来检查该数是否为回文数。

示例

public class Main{ // Checks if the digits are in increasing order static boolean isIncreasing(int num){ // Converts the number to a string String s = Integer.toString(num); char dig; boolean result = true; // Loops over all the digits for(int i = 0; i < s.length()-1; i++){ // Stores the digit at i th location dig = s.charAt(i); // Compares the digit with its next location if(dig > s.charAt(i+1)){ // Sets the result to false and breaks out of the loop result = false; break; } } return result; } // Checks if the digits are in decreasing order static boolean isDecreasing(int num){ // Converts the number to a string String s = Integer.toString(num); char dig; boolean result = true; // Loops over all the digits for(int i = 0; i < s.length()-1; i++){ // Stores the digit at i th location dig = s.charAt(i); // Compares the digit with its next location if(dig < s.charAt(i+1)){ // Sets the result to false and breaks out of the loop result = false; break; } } return result; } //user defined method to check bouncy number static boolean bouncyNum(int num){ // Checks if the number is less than 100 if(num<100){ System.out.println("The number is not a bouncy number"); } // Checks for sorted digits using the functions if(!isIncreasing(num)&&!isDecreasing(num)) return true; else return false; } //main method public static void main(String args[]){ //initialized a number int num = 150; //printing the given number System.out.println("Given number: "+num); // Calls the user defined method and stores the result in res variable boolean res = bouncyNum(num); // Prints the result if(res) System.out.println("The number is a bouncy number"); else System.out.println("The number is not a bouncy number"); } }

输出

Given number: 150
The number is a bouncy number

在本文中,我们探讨了如何使用不同的方法在Java中检查一个数是否为回文数。

更新于:2022年10月27日

3K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告