如何在不将其转换为字符串的情况下反转 int 的顺序

How to reverse the order of an int without turning it into a string

我的任务是创建一个方法,该方法将采用用户输入的 3 位整数并输出其反转 (123 - 321)。我不允许将 int 转换为字符串,否则我会失去分数,我也不允许在 main 以外的任何地方打印。

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

您可以使用以下方法计算数字的倒数。

public int reverseTheOrder(int reverse){
        int result = 0;
        while(reverse != 0){
            int rem = reverse%10;
            result = (result *10) + rem;
            reverse /= 10;
        }
      return result;
   }

您需要使用以下内容。

  • %余数运算符
  • / 除法运算符
  • *乘法。
  • +加法
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.

一旦你理解了这一点,你就可以进行实验(也许先在纸上)看看如何 将它们按相反的顺序放回去(使用最后两个运算符)。但请记住,以 0 结尾的数字(如 980)将变为 89,因为前导 0 被删除。