-3

I've looked around and came up with this solution, but it doesn't seem to be working. Does anyone have an idea? I need to get a number from the user that is only 3 digits and positive. after that, to reverse the 3 digits. what i wrote below only give me the last digit out of the three that I need.

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");
Noam Gur
  • 65
  • 11
  • 3
    -1'd until you at least explain what you mean by "doesn't seem to be working". You need to say at least what you *expect* to see, and what you *actually* see. – slim Mar 11 '14 at 10:53
  • Could you post your output and what are you expected? – Bosko Mijin Mar 11 '14 at 10:53
  • Also, if you search the site for "reverse number" there are at least two other people who have asked about the same homework problem and received answers. – slim Mar 11 '14 at 10:55
  • edited. sorry. first time over here, not that that's an exscuse. when I said that i looked around, i meant that i saw those quesitens you pointed out and that's how I got to that code. Yet I couldnt come up with an accurate code. – Noam Gur Mar 11 '14 at 11:43

4 Answers4

0

When you do

reversedNum = (reversedNum*10) + (userNumber%10);
userNumber = userNumber/10;

reversedNum is 0 so you end up with only userNumber%10.

You need something like this:

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);
Basile Perrenoud
  • 4,039
  • 3
  • 29
  • 52
0

You can use % operator in order to print the last digit of input and then use / between int operand to get remaining digits

while(input%10 != input) {
    int mod = input % 10;
    System.out.print(mod);
    input /= 10;
}
seph
  • 118
  • 1
  • 5
0
String result = "" + Integer.toString(userNumber).charAt(2) + Integer.toString(userNumber).charAt(1) + Integer.toString(userNumber).charAt(0);
int reversedNum = Integer.valueOf(result);

That will reverse your integer.

Tony_craft
  • 213
  • 1
  • 10
-1

To reverse the number the logic should be as below. Use % and / operator to find the individual digit.

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);
}
Rahul
  • 3,479
  • 3
  • 16
  • 28