Cómo invertir el orden de un int sin convertirlo en una cadena

Joshua Wilson:

Me han encargado con la asignación de la creación de un método que se llevará a la entrada int 3 dígitos por el usuario y la salida de su reverso (123 - 321). No se me permite convertir el int a una cadena o voy a perder puntos, tampoco se me permite imprimir en cualquier lugar que no sea principal.

public class Lab01
{
  public int sumTheDigits(int num)
   {
      int sum = 0;
      while(num > 0)
      {
         sum = sum + num % 10;
         num = num/10;
      }
      return sum;
   }

   public int reverseTheOrder(int reverse)
   {
      return reverse;
   }

   public static void main(String[] args)
   {
      Scanner input = new Scanner(System.in); 

      Lab01 lab = new Lab01();
      System.out.println("Enter a three digit number: ");
      int theNum = input.nextInt();
      int theSum = lab.sumTheDigits(theNum);
      int theReverse = lab.reverseTheOrder(theSum);

      System.out.println("The sum of the digits of " + theNum + " is " + theSum);
  }
WJS:

Es necesario utilizar la siguiente.

  • % el operador resto
  • / el operador de división
  • * multiplicación.
  • + adición
Say you have a number 987
n = 987
r = n % 10 = 7   remainder when dividing by 10
n = n/10 = 98    integer division
Now repeat with n until n = 0, keeping track of r.

Una vez que entienda esto, puede experimentar (tal vez en el papel primero) para ver cómo poner de nuevo en orden inverso (usando los dos últimos operadores). Pero recuerde que los números que terminan en 0 como 980 se convertirá en 89 que conduce desde 0 alejado son eliminados.

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=339092&siteId=1
Recomendado
Clasificación