gpt4 book ai didi

Java回文项目: If/else

转载 作者:行者123 更新时间:2023-12-02 01:03:30 27 4
gpt4 key购买 nike

我正在为一个项目编写一个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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com