从键盘接收一个十位以内的整数并反向输出

反向输出十位以内的整数

如题,初学的时候对于已经知道位数的整数特别的低位数的采用的方法是:把各个位数上的数字分离出来然后再反过来赋予其相反的位数。但是发现这种方式不仅笨拙而且还十分的不灵活,在位数特别大的时候体现尤为明显。

后来经过推算找出了一个比较灵活的方法。
推算过程如下:
随便举个数子:1232
1232 % 10 = 2 得到个位数*
1232 / 10 = 123 降位
123 % 10 = 3 得到十位数*
123 / 10 =12 降位
12 % 10 = 2 得到百位数*
12 / 10 = 1 降位
1 % 10 = 1 得到千位数*
1 / 10 = 0 降位 结束
根据1232这个数的例子我们可以发现一些规律性的东西,像每个位置的数都得到了,反向输出想必也不是什么难事了
下面上代码:

public class ChangeNumber {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("您好!请随意输入一个整数:");
        Scanner num1 = new Scanner(System.in);
        int num = num1.nextInt();
        int result = 0;// 用来存放反转数字
        while (true) // 定义一个死循环
        {
            int n = num % 10;// 取出对应位置上的位数
            result = result * 10 + n;// 依次的反转存储得到反转的数字
            num = num / 10;// 降位
            if (num == 0) {//当发现无位可降时,终止循环!
                break;
            }
        }
        System.out.println(result);
    }
}

这段代码里用while(true)死循环来不停的对接收的这个数进行降位,同时也在不停地接收反转位,等到降位终止时,循环终止,反向数已得到,并输出。

猜你喜欢

转载自blog.csdn.net/Mattscl/article/details/53403980