java 分解整数 【个 十 百】(数组案例)

求一个数两位数的个位数,十位数,百位数及千位:

  int num = 53;

  int g = (num / 1) % 10;     //个位

  int s = (num / 10) % 10;   //十位

  int b = (num / 100) % 10;      //百位

  int b = (num / 1000) % 10;    //千位

你会发现,这是有规律的,求哪一位就用这个数除以位的值,然后再对10进行求余。如果不求余那就会出现高位的数,例如,如果不对百位求余,当你输入一个四位数(3456),结果就会:3,34 , 5 , 6

 

 

下面是用java写的一个一般般的 拆分整数的案例 值得大伙研究研究,趣味无穷哦

 1 import java.util.Scanner; //导入输入库
 2 class numbers
 3 {
 4     public static void main(String[] args) 
 5     {
 6         //最多输入十亿位
 7         //创建一个数组,遍历输出相应的位数
 8         String[] str = new String[]{"十位","百位","千位","万位","十万位","百万位","千万位","亿位","十亿位","百亿位","千亿位"};
 9 
10         System.out.println("请输入一个数字:");
11         Scanner sca = new Scanner(System.in);
12 
13         //接受用户输入的数
14         long sum = sca.nextInt(); //声明一个长整型变量
15         long sum2 = sum; //分开判断正 负数
16         int a = 0; 
17 
18         for (int i = 0 ; i<32 ;i++ )
19         {
20             //判断用户输入的数是几位数
21             if(sum/10 > 0){ //个位数大于0,为正数
22                 sum = sum/10;
23                 a++;
24             }else{
25                 break;
26             }
27         }
28 
29         if (sum2 < 10) //如果是负数
30         {
31             long k = sum;
32             System.out.println("这个数只有个位是"+k);//
33 
34         }else{
35             //把用户输入的数是分解出来
36             for (int i = 0 ;i <= a ;i++ )
37             {
38                 if (i==0)
39                 {
40                      long c = sum2 % 10; //个位数
41                      System.out.println("这个数的个位是:"+c);
42 
43                 }else if(i < a){
44                    //这里要强转一下 这个函数出来的double;
45                     long new1 = (long)Math.pow(10,i); 
46                          
47                     //参数说明:m为要求方的数,n为次方数
48                     long b = sum2 / new1 % 10;
49                     System.out.println("这个数的"+str[i-1]+"是:"+b);
50 
51                  }else{                
52                     long new2= (long)Math.pow(10,i);
53                     long h = sum2 / new2 % 10;
54                     System.out.println("这个数的"+str[i-1]+"是:"+h);
55                  }
56             }
57         
58         }
59 
60     }
61 }

陌陌说:编程语言之间多少都是有相通的,万变不离其宗,java本是继承于c,c++,oc等语言,所以根本原理是不变的。

posted @ 2016-11-15 01:08  Bigerf  阅读(4795)  评论(0编辑  收藏  举报