为了账号安全,请及时绑定邮箱和手机立即绑定

简单回文。

简单回文。

ITMISS 2021-09-29 15:10:33
我尝试了不同的方法来做到这一点,当我这样做时..import java.util.*;public class Palindrome { public static void main(String[] args) {  Scanner in = new Scanner(System.in);  System.out.print("Enter number");  int number = in .nextInt();  int first = number  int middle = 0;  int last = first;  boolean isPalindrome = last == first;  if (isPalindrome) {   System.out.print("This is a palindrome");  } else   System.out.print("This is not a palindrome"); }}它吐出“这是一个回文”。请注意,我不能使用循环。这不应该工作吗?当我这样做时它有效......import java.util.*;public class Palindrome { public static void main(String[] args) {  Scanner in = new Scanner(System.in);  System.out.print("Enter number");  int first = 1;  int middle = 0;  int last = 5;  boolean isPalindrome = last == first;  if (isPalindrome) {   System.out.print("This is a palindrome");  } else   System.out.print("This is not a palindrome"); }}它告诉我它是否是回文...所以,它适用于我的一端,但不适用于用户端。我错过了什么
查看完整描述

2 回答

?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

问题是,您将输入的值分配给变量,first然后将 的值分配first给变量last。您将布尔值声明为isPalindrome = first==lasttrue ),这在这种情况下始终为真,这就是您得到“这是回文”的原因。在您说“有效”的第二个代码块中,是因为您声明了first = 1and last = 5,当您这样做时isPalindrome = first==lastfalse),回文的值将始终为假,因此您会得到“这不是回文”输出。

我认为你需要做的是重写你的逻辑,这样你就可以详细说明你想做的过程。随意问一个后续问题。


查看完整回答
反对 回复 2021-09-29
?
呼唤远方

TA贡献1856条经验 获得超11个赞

在第一个中,用户输入一个分配给 的数字first,然后您将其设置last为对 的引用first。由于 的真值isPalindrome取决于 是否last == first,因此它始终为真,因为您以这种方式对其进行编码。但是,这实际上并不能证明该数字是回文,因为例如,如果用户输入数字 56,则数字 56056 不是回文(反之为 65065)。

在第二个程序中,first始终为 1,last始终为 5,因此由于它们永远不相等,因此条件last == first将始终为假。

您试图通过这些程序实现什么目标?没有一个测试用户输入是回文。首先尝试编写伪代码,如果您愿意,请在评论中。


查看完整回答
反对 回复 2021-09-29
  • 2 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信