有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java反转现有的数字

你能解释一下这个代码是怎么工作的吗?我尝试过任何输入,它总是给出正确的结果。我想他们在这一行打上了reversenum = reversenum * 10;但是我需要一些解释

public static void main(String args[]) {
   int num=123456789;
   int reversenum =0;
   while( num != 0 ){
      reversenum = reversenum * 10;
      reversenum = reversenum + num%10;
      num = num/10;
   }
   System.out.println("Reverse of specified number is: "+reversenum);
}

共 (4) 个答案

  1. # 1 楼答案

    基本上,代码的作用是:

    • 从原始数字中去掉单位数字
    • 把那个数字加到反面最右边的位置
    • 将倒数乘以10,数字向上移动1
    • 将原来的数字除以10,进入下一个数字
    • 这种情况会一直发生,直到没有更多的数字
  2. # 2 楼答案

    在每次通过while循环结束时,当前的最后一位num被删除,并成为reversenum的最后一位。因此num的最后一个数字被删除,它成为添加到reversenum的第一个数字(从而成为reversenum的第一个数字)。然后它取num的下一个最后一个数字,并成为添加到reversenum的第二个数字(从而成为reversenum的第二个数字)。这会一直持续到没有数字可以移动为止

    让我们看一下第一关:

    reversenum变成0*10,也就是0。然后添加num%10,即9。所以reversenum变成了9

    同时,整数除法使num变成12345678

    看看下一关:

    reversnum变成9*10,这是90,然后加上num%10这是8,所以reversenum变成98

    同时,整数除法使num变成1234567


    小警告

    你认为90的反面是什么?你应该知道这个案子

  3. # 3 楼答案

    你的电话号码是12345。我们从末尾提取数字。首先我们找到12345除以10的余数。剩下的是5。现在我们将其添加到我们的reversenum中,它应该存储反向编号。然后我们把12345除以10。一个整数除以一个整数就得到一个整数值。所以

    num=12345/10=1234

    我们繁殖 ReverseEnum乘以10,使ReverseEnum变为50,然后再次将剩余部分添加到ReverseEnum,使第二次ReverseEnum变为54。然后我们提取1234的最后一个数字(num变量)。正如你所看到的,这个过程一直持续到总数反转,即num=0(没有更多的数字需要提取)

  4. # 4 楼答案

    在while语句中,它将reverseEnum变量乘以10,然后将num/10的剩余部分添加到reverseEnum,最后将num除以10。while语句有可能结束,因为每个变量都是int,如果num不能被10整除,那么num除以10总是会产生num/10的四舍五入版本