我环顾四周并想出了这个解决方案,但它似乎没有起作用。有没有人有想法?我需要从用户那里获得一个只有3位数且正数的数字。之后,扭转3位数。我在下面写的只给出了我需要的三个中的最后一个数字。
int reversedNum=0;
Scanner scan = new Scanner (System.in);
System.out.println("Please enter a 3 digit positive number whose first and last digits are different: ");
int userNumber = scan.nextInt();
if (userNumber >= 100 && userNumber <= 999)
{
System.out.println("User number is: " + userNumber);
reversedNum = (reversedNum*10) + (userNumber%10);
userNumber = userNumber/10;
System.out.println("Difference "+reversedNum);
}
else
System.out.println("The number you entered is not a 3 digit positive number");
答案 0 :(得分:0)
当你这样做时
reversedNum = (reversedNum*10) + (userNumber%10);
userNumber = userNumber/10;
reversedNum为0,因此您最终只得到userNumber%10。
你需要这样的东西:
int hundreds = (int)(userNumber/100);
int remaining = userNumber-100*hundreds;
int dec = (int)(remaining /10);
remaining -= 10*dec;
int reversed = 100*remaining + 10*dec + hundreds
System.out.println("Reversed: " + reversed);
System.out.println("Difference " + (userNumber-reversed);
答案 1 :(得分:0)
您可以使用%运算符来打印输入的最后一位数,然后在int操作数之间使用/来获取剩余数字
while(input%10 != input) {
int mod = input % 10;
System.out.print(mod);
input /= 10;
}
答案 2 :(得分:0)
String result = "" + Integer.toString(userNumber).charAt(2) + Integer.toString(userNumber).charAt(1) + Integer.toString(userNumber).charAt(0);
int reversedNum = Integer.valueOf(result);
这会反转你的整数。
答案 3 :(得分:-1)
要反转逻辑的数字,如下所示。使用%和/运算符查找单个数字。
if (userNumber >= 100 && userNumber <= 999)
{
System.out.println("User number is: " + userNumber);
int unitdigit = userNumber%10;
userNumber = userNumber/10;
int tenthdigit = userNumber%10;
int lastdigit = userNumber/10;
reversedNum = (unitdigit*100) + (tenthdigit*10) + lastdigit;
System.out.println("reversed numnber "+reversedNum);
}