在java中反转数字

时间:2014-03-11 10:50:23

标签: java

我环顾四周并想出了这个解决方案,但它似乎没有起作用。有没有人有想法?我需要从用户那里获得一个只有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");

4 个答案:

答案 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);
}