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);
}
# 1 楼答案
基本上,代码的作用是:
# 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 楼答案
你的电话号码是12345。我们从末尾提取数字。首先我们找到12345除以10的余数。剩下的是5。现在我们将其添加到我们的reversenum中,它应该存储反向编号。然后我们把12345除以10。一个整数除以一个整数就得到一个整数值。所以
num=12345/10=1234
我们繁殖 ReverseEnum乘以10,使ReverseEnum变为50,然后再次将剩余部分添加到ReverseEnum,使第二次ReverseEnum变为54。然后我们提取1234的最后一个数字(num变量)。正如你所看到的,这个过程一直持续到总数反转,即num=0(没有更多的数字需要提取)
# 4 楼答案
在while语句中,它将reverseEnum变量乘以10,然后将num/10的剩余部分添加到reverseEnum,最后将num除以10。while语句有可能结束,因为每个变量都是int,如果num不能被10整除,那么num除以10总是会产生num/10的四舍五入版本