作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为一个项目编写一个Java程序,用于查找3位数字是否是回文数,当我完成它时,我没有意识到指令还说它必须检测它是否是回文数是否是 3 位数字,我不知道如何将其实现到我所拥有的中。
我不能使用数组或循环,因为我们没有在类里面讨论它们,而且我的教授不希望我们使用任何我们在技术上不应该知道的东西。必须通过所有输入和数学才能找到数字。
代码可以工作,但我的问题出在 ints d1、d2 和 d3 启动的区域。我想我需要将“if (d1 == d3)
”嵌套在另一个 if 语句中来确定数字是否为 3 位数字。在过去的几天里,我尝试自己解决这个问题,但我陷入了困境。
感谢任何帮助,谢谢。
import java.util.Scanner;
import java.lang.Math;
public class Palindrome {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//user or computer generated number
System.out.print("Enter 1 if you would like to enter a 3-digit number. Enter 2 if you would like to have the computer generate it. ");
int firstChoice = input.nextInt();
//user entered number
if (firstChoice == 1) {
//enter the 3 digit number
System.out.print("Enter a 3-digit number: ");
int userNumbers = input.nextInt();
//3 user numbers
int d1 = userNumbers / 100;
int d2 = (userNumbers / 100) / 10;
int d3 = userNumbers % 10;
if (d1 == d3) {
System.out.println(userNumbers + " is a palindrome");
} else {
System.out.print(userNumbers + " is not a palindrome");
}
//computer generated number
} else if (firstChoice == 2) {
int low = 0;
int high = 10;
//generate 3 random numbers
int num1 = (int)(Math.random() * ((high - low) - 1) + low);
int num2 = (int)(Math.random() * ((high - low) - 1) + low);
int num3 = (int)(Math.random() * ((high - low) - 1) + low);
//computer number is or isn't a palindrome
if (num1 == num3) {
System.out.println(num1 + "" + num2 + "" + num3 + "");
System.out.print(num1 + "" + num2 + "" + num3 + " is a palindrome");
} else {
System.out.println(num1 + "" + num2 + "" + num3 + "");
System.out.print(num1 + "" + num2 + "" + num3 + " is not a palindrome");
}
//incorrect input
} else {
System.out.println("Incorrect input");
}
}
}
最佳答案
按如下方式进行:
// user entered number
if (firstChoice == 1) {
int userNumbers;
// enter the 3 digit number
do {
System.out.print("Enter a 3-digit number: ");
userNumbers = input.nextInt();
if (userNumbers >= 100 && userNumbers <= 999) {
// 3 user numbers
int d1 = userNumbers / 100;
int d3 = userNumbers % 10;
if (d1 == d3) {
System.out.println(userNumbers + " is a palindrome");
} else {
System.out.print(userNumbers + " is not a palindrome");
}
} else {
System.out.println("The number has to be of 3 digits");
}
} while (!(userNumbers >= 100 && userNumbers <= 999));
// computer generated number
} else if (firstChoice == 2) {
// ...
}
示例运行:
Enter 1 if you would like to enter a 3-digit number. Enter 2 if you would like to have the computer generate it. 1
Enter a 3-digit number: 12
The number has to be of 3 digits
Enter a 3-digit number: 2000
The number has to be of 3 digits
Enter a 3-digit number: 121
121 is a palindrome
另一个示例运行:
Enter 1 if you would like to enter a 3-digit number. Enter 2 if you would like to have the computer generate it. 1
Enter a 3-digit number: 123
123 is not a palindrome
您还可以重写逻辑来检查计算机生成的 3 位随机数,如下所示:
if (firstChoice == 1) {// user entered number
int userNumbers;
// enter the 3 digit number
do {
System.out.print("Enter a 3-digit number: ");
userNumbers = input.nextInt();
if (userNumbers >= 100 && userNumbers <= 999) {
// 3 user numbers
int d1 = userNumbers / 100;
int d3 = userNumbers % 10;
if (d1 == d3) {
System.out.println(userNumbers + " is a palindrome");
} else {
System.out.print(userNumbers + " is not a palindrome");
}
} else {
System.out.println("The number has to be of 3 digits");
}
} while (!(userNumbers >= 100 && userNumbers <= 999));
} else if (firstChoice == 2) {// computer generated number
int low = 0;
int high = 1000;
// generate a 3-digit random number
int num = (int) (Math.random() * ((high - low) - 1) + low);
int d1 = num / 100;
int d3 = num % 10;
if (d1 == d3) {
System.out.println(num + " is a palindrome");
} else {
System.out.print(num + " is not a palindrome");
}
}
如有任何疑问,请随时发表评论。
关于Java回文项目: If/else,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60343517/
我想开发一个 Skype 机器人,它将用户名作为输入,并根据用户输入以相反的字符大小写表示hello username。简而言之,如果用户输入他的名字 james,我的机器人会回复他为 Hello J
我是一名优秀的程序员,十分优秀!