获取 整数 的各个位上的数 以及取余问题

取余运算:


System.out.println(99%100);//结果是99
  System.out.println(99/10%10);//结果是9

 为什么上述的结果不一样呢,要理解这个问题,就要知道一个规则:

取余运算:1)99除以100,被除数比除数小,所以余数是被除数本身,就是99。所以99%100=99

     2)99除以10再%10,这要分两步看:

        第一步:99/10,这是两个整型常量相除,所以结果也是一个整型常量,即结果是9;

        第二步:用所得结果9%10,因为被除数比除数小,所以余数是被除数本身,即为9;

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

知道了取余运算的规则,就可以获取各个位上的数:

int num=(int)(Math.random()*90000)+10000;//用Math.random()实现获取随机的五位数
        int ge=num%10;//获取个位上的数
        int shi=num/10%10;//获取十位上的数
        int bai=num/100%10;//获取百位上的数
        int qian=num/1000%10;//获取千位上的数
        int wan=num/10000%10; //获取万位上的数   

用循环的方式获取随机五位数各个位之和:

      int sum=0;
        for(double i=0;i<5;i++) {
            sum=sum+(num/(int)(Math.pow(10, i)))%10;//Math.pow(a,b):返回a^b(double类型)
        }        

猜你喜欢

转载自www.cnblogs.com/klbss/p/12431914.html