怎么得到倒数?

时间:2015-12-05 07:50:47

标签: java reverse

我不理解使用这一行的含义

这是在while块上。

import java.util.Scanner;

public class ReverseNumberWhile {
    public static void main(String[] args){

       int num = 0;
       int reversenum = 0;

       System.out.println("Enter your number and press enter: ");

       Scanner input = new Scanner(System.in);
       num = input.nextInt();

       while(num != 0) {
           reversenum = reversenum * 10;
           reversenum = reversenum + num%10;
           num = num/10;
       }

       System.out.println("Reverse of input number is: " + reversenum);
   } 
}

2 个答案:

答案 0 :(得分:2)

你去了,评论道:

 while(num != 0)
       {
           reversenum = reversenum * 10; //This moves the reversenum attained in previous iteration to one higher place value
           reversenum = reversenum + num%10; // num%10 gives you the last digit which is added to the existing reversenum
           num = num/10; //This leaves the remaining digits removing rightmost
       }

答案 1 :(得分:1)

此代码生成的数字reversenumnum的位数相同,但顺序相反。例如,如果num==12345,则为reversenum==54321。它的工作原理是逐个切割num的数字,从最后一个开始,然后将它们添加到reversenum。循环可以描述如下:

  1. num的最后一位数添加到reversenum(前两行)。
  2. 删除num的最后一位数字(最后一行)。
  3. 只要num中还有任何数字,也就是说,当它为非零时,会重复此操作。

    前两行实际上可以写成一行:

    reversenum = reversenum * 10 + num % 10;
    

    这种方式实际上更有意义,因为你可以看到这里发生了什么:我们采取reversenum,将其数字向左移动(乘以10),然后添加最后一位数字num(由num % 10获得)。