Como inverter a ordem de um int sem transformá-lo em uma string

Joshua Wilson:

I ter sido encarregado com a atribuição de criar um método que irá tomar a entrada int três dígitos por parte do utilizador e a sua saída invertida (123-321). Eu não estou autorizado a converter o int para uma cadeia ou vou perder pontos, eu também não estou autorizado a imprimir em qualquer lugar diferente 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:

Você precisa usar o seguinte.

  • % o operador restante
  • / o operador de divisão
  • * multiplicação.
  • + Adição
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.

Depois de entender isso, você pode experimentar (talvez no papel primeiro) para ver como colocá-los de volta na ordem inversa (usando os dois últimos operadores). Mas lembre-se que os números que terminam em 0 como 980 se tornará 89 desde levando 0 de são descartados.

Acho que você gosta

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