数字逆序输出
今天在做算法题时碰到数字逆序输出的题目,在网上看到一种解法,挺巧妙的,记录一下。
方法一
int result=0;
int x=123;
while(x!=0){
result *= 10;//行1
result += x % 10;//行2
x /= 10;//行3
}
简单解释一下:
第一个循环开始:行1在第一步并没有用,仅接着行2将加上了原数的个位数,最后行3让原数除以10,去除个位,此时第一个循环结束
第二个循环开始:行1让加上个位数的result乘10,再加上除以10后的原数的个位数,以此循环。。。
方法二
public void function(int n){
System.out.print(n%10);
if (n > 10){
function(n/10);
}
}
此方法使用了递归,比方法一更简练