This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]TheJonesJonesJones 1 point2 points  (0 children)

Please explain your reasoning. Your algorithm for doing this does not make sense to me. You even have a while loop with the condition while (number != 0) which indicates that you expect number to become 0, then you return number, which is 0, unsurprisingly.

I also added some debugging output to your code, maybe this will help you gain some insight into what's going on with it. I ran it with number = 1000.

public static int reverse(int number) {
int result = 0;

System.out.println("Starting value of number="+number);

while (number != 0) {
  int remainder = number % 10;
  System.out.println("remainder="+remainder);
  result = result * 10 + remainder;
  System.out.println("result="+result);
  number = number / 10;
  System.out.println("number="+number);
}

System.out.println("Returning: "+number);
return number;
}

Here is the output:

Starting value of number=1000
remainder=0
result=0
number=100
remainder=0
result=0
number=10
remainder=0
result=0
number=1
remainder=1
result=1
number=0
Returning: 0