如何在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中检查一个数是否为回文数。
广告