Java程序反转数字并检查是否为回文数


什么是回文数?

如果给定一个数字(两位数、三位数或四位数),并将每个数字从前到后反转位置,然后再反过来,如果反转所有元素后输出的数字相同,则称该数字为回文数。

就像我们会检查字符串或数组是否为回文数一样。

  • 字符串 - 字符串是一个存储容器或存储方法,我们可以在Java程序中存储一系列字符。

  • 数组 - 数组是将相同类型的数据放置在顺序形式的不同位置的集合,这使得通过简单地加上调查中的基本数据来计算程序中数据的位置变得更容易。

问题陈述

给定一个数字,检查它是否为回文数。

输入1

Given Input: a = 102022220201

输出

Output : Reverse of a = 102022220201
//The Number Is Palindrome = YES//

输入2

Given Input: b =20011997

输出

Output : Reverse of b = 79911002
//The Number Is Palindrome = NO//

通过反转数字检查回文数

以下是反转数字并查找其是否为回文数的一般算法:

  • 步骤1 - 检查回文数。

  • 步骤2 - 该数字应保存在一个非永久变量中。

  • 步骤3 - 更改数字。

  • 步骤4 - 现在将临时变量中的数字与反转后的数字进行比较。

  • 步骤5 - 如果两个数字保持相同或相同,则它是一个回文数。

  • 步骤6 - 否则它不是。

语法:第1部分 - 反转数字

{
   int a,res=0,m;
   Scanner sc=new Scanner(System.in);
   System.out.println("Enter a number which you want to be reversed");
}
m=sc.nextInt();
for( ;m!=0; ) {
   a=m%10;
   res=(res*10)+a;
   m=m/10;
}

语法:第2部分 - 查找数字的回文

if (originalNum1 == reversedNum1) {
   System.out.println(originalNum1 + " is a Palindrome number.");
}
else {
   System.out.println(originalNum1 + " is not a Palindrome number.");
}

让我们看看 Java 中的回文程序。这将是最简单的回文程序形式。

以下方法可用于检查回文数:

使用字符串和数组检查数字是否为回文数

检查数字是否为回文数的步骤:

  • 初始化一个标志以取消设置或标志值为 0。

  • 将数组大小设置为 n/2。

  • 检查循环的条件。然后将标志值设置为 1。

  • 中断。

  • 循环以结果结束。

示例

import java.util.*;
public class palindromeTest{
   public static void main(String args[]){
      int n;
      System.out.println("Enter a number to test");
      Scanner sc = new Scanner (System.in);
      n=sc.nextInt();
      int r=0 ,q=0 ,num=0 ,p=0;
      num= n;
      while(n!=0){
         r = r%10;
         q = n/10;
         p = p*10+r ;
         n = q;
      }
      if (num==p){
         System.out.println("the number is a palindrome number");
      }
      else{
         System.out.print("the number is not palindrome");
      }
   }
}

输出

Enter a number to test
1111
the number is not palindrome

使用字符串在 Java 中找出回文数

如果回文数被反转,它将返回与提供的输入相同的数字。使用StringBuffer方法和单向reverse(),我们可以使用 Java 检查回文数。在下面的示例中,我们将检查输入字符串是否为回文数。

示例

public class Main {
   public static void main(String[] args) {

      String str = "Radar2022", reverseStr2 = "";
      int strLength1 = str.length();
      for (int i = (strLength1 - 1); i >=0; --i) {
      reverseStr2 = reverseStr2 + str.charAt(i);
      }
      if (str.toLowerCase().equals(reverseStr2.toLowerCase())) {
         System.out.println(str + "  -is a Palindrome String.");
      }
      else {
         System.out.println(str + " -is not a Palindrome String.");
      }
   }
}

输出

Radar2022 -is not a Palindrome String.

检查数组是否为回文数

有两种方法可以检查数组是否为回文数。

  • 如果字符串中只有一个字符,则返回 true。

  • 否则,只需比较第一个和最后一个字符并将它们放在递归方法中。

示例

public class findapalindrome {

   static void palindrome(int arr[], int n){
      int flag7 = 0;
      for (int i = 0; i <= n / 2 && n != 0; i++) {
         if (arr[i] != arr[n - i - 1]) {
            flag7 = 1;
            break;
         }
      }
      if (flag7 == 1)
      System.out.println("The String Is Not Palindrome");
      else
      System.out.println("The String Is Palindrome");
   }
   public static void main(String[] args){
      int arr[] = { 100, 200, 300, 222, 1111 };
      int n = arr.length;
      palindrome(arr, n);
   }
}

输出

The String Is Not Palindrome

结论

在阅读了定义和一些基于理论的程序后,可以很容易地说回文数是一种即使在更改原始数字后也保持不变的数字。

所有这些解释都用示例进行了详细描述,为了更好地理解,我们还提供了基于三种不同方法的示例程序。

更新于: 2024年7月9日

2K+ 次浏览

开启你的职业生涯

通过完成课程获得认证

开始学习
广告