Java 面试很可能涉及这样一种情况,即候选人必须展示他们的逻辑和编程技能以及他们的经验,作为他们对候选人评估的一部分。面试中最常见的问题是“你能用 Java 写一个回文程序吗?这也是最具挑战性的问题之一。回文只不过是数字或字符串,在反转时保持不变,而非回文则相反。很明显,当字母颠倒时,它们会形成彼此的镜像。回文最初来自希腊语,是数字、单词或字符集,它们向前和向后拼写相同。回文的众多例子包括 686、1401042、95359、7007、马拉雅拉姆语、雷达、MAAM、雷达、水平仪等。将字母颠倒过来,很明显它们形成了彼此的镜像。使用 Java 中的余数和除法运算符,我们可以创建一个代码来检查特定数字是否为回文。
在本文中,我们将学习如何检查输入数字是回文还是不是回文的数字。在这里,我们将讨论什么是回文,什么是回文数,以及 Java 中的示例回文程序。理解 Java 的回文实现的第一步是理解回文的概念。
以下是什么是回文的快速概述。
什么是回文?
回文一词是指单词、短语、数字或其他字符序列,无论是向前阅读还是向后阅读,它们读起来都相同。如果要向前和向后阅读,则无论间距、大小写或标点符号如何,它都将具有相同的字母序列。在编程中,空字符串也可以被视为回文。因此,确实,每个单个字符串或一位数字都被视为回文。
示例 1:字符串
赛车
发动机
原则
示例 2:数字
14541
6783876
232
什么是回文编号?
回文编号,也称为数字回文或数字回文,是一个即使其编号中的数字颠倒也保持不变的数字。例如,45654 是一个回文数,当其数字反转时,其值相同。正如您可能已经猜到的那样,如果我们反转 1312,它就不是回文,因为反向数字与原始数字不同。
回文编号计划的步骤
输入用户的号码或手动初始化它。
创建一个临时变量并将数字存储在其中。
反转/反转数字。
将临时号码与反转号码进行检查。
如果两个数字相等,则打印它为回文
否则,它不是一个回文。
Java 中使用 FOR 循环的回文程序
下面是一个易于遵循的程序,它使用“For 循环”来查找回文。在 for 循环中,将迭代检查输入中的数字,直到输入值变为 0。在 FOR 循环中,数字 (num) 的模数被考虑在内,并且它被保存在一个变量中,该变量为循环的每次迭代调用。因此,我们能够获得与输入完全相反/相反的结果。最后,将反转的数字与原始数字进行比较,以确定它是否为回文。以下示例可让您检查输入是否为回文编号。reverseNum
算法
启动程序
接受用户输入或手动初始化它 (num)
创建一个新变量 () 并存储输入。initialNum
在 num 等于零之前,找到 num 的余数并将其存储在变量 () 中。reverseNum
确定 是否等于 .initialNumreverseNum
如果两者都相等,
打印它是一个回文
否则,它不是一个回文。
结束程序
代码片段
import java.util.*;
class Main
{
public static void main(String[] args)
{
Scanner sc= new Scanner(System.in);
System.out.print("Enter the number: ");
int num= sc.nextInt();
int reverseNum=0, initialNum, remainder=0;
initialNum = num;
for(;num!=0;num/=10)
{
remainder= num % 10;
reverseNum = (reverseNum * 10) + remainder;
}
if (initialNum == reverseNum)
{
System.out.println("Yes, the given number " + initialNum + " is a palindrome.");
}
else
{
System.out.println("No, the given number " + initialNum + " is not a palindrome.");
}
}
}
输出 1:
输入数字:45354
是的,给定的数字 45354 是一个回文。
输出 2:
输入数字:61214
不,给定的数字 61214 不是回文。
Java 中使用 while 循环的回文程序
在解释了代码背后的逻辑之后,现在让我们看看用 Java 编写回文程序的另一种可能方法,即使用 while 循环。在 while 循环中,将迭代检查输入中的数字,直到输入值变为 0。在 while 循环中,数字 (num) 的模数被考虑在内,并将其保存在每次循环迭代调用的变量中。最后,将反转的数字与原始数字进行比较,以确定它是否为回文。以下示例可让您检查输入是否为回文编号。reverseNum
算法
启动程序
接受用户输入或手动初始化它 (num)
创建一个新变量 () 并存储输入。initialNum
在 num 等于零之前,找到 num 的余数并将其存储在变量 () 中。reverseNum
确定 是否等于 .initialNumreverseNum
如果两者都相等,
打印它是一个回文
否则,它不是一个回文。
结束程序
代码片段
import java.util.*;
class Main
{
public static void main(String[] args)
{
Scanner sc= new Scanner(System.in);
System.out.print("Enter the number: ");
int num= sc.nextInt();
int reverseNum=0, initialNum, remainder;
initialNum = num;
while(num!=0)
{
remainder= num % 10;
reverseNum = (reverseNum * 10) + remainder;
num = num / 10;
}
if (initialNum == reverseNum)
{
System.out.println("Yes, the given number " + initialNum + " is a palindrome.");
}
else
{
System.out.println("No, the given number " + initialNum + " is not a palindrome.");
}
}
}
输出 1:
输入号码:98989
是的,给定的数字 98989 是一个回文。
输出 2:
输入数字:3624251
不,给定的数字 3624251 不是回文。
结论
在了解了什么是回文以及如何用 Java 编写回文代码之后,我们已经到了本文的结尾。希望本教程中与您分享的所有信息都澄清了您可能有的任何疑问。你能做的最重要的事情就是尽可能多地练习,并将你所学到的东西付诸实践。如果该数字仅由一个字母组成或不包含任何字母,则称为回文编号。当一个数字的反面与其原始数字相同时,它被称为回文字符串。希望这能帮助你提高你的Java技能。