要求:统计一个整数中出现最多的数字。如果数字个数一样,则以最大的数字为准,例如1输出1,121输出1,23231输出3。
int m = 1232312;
                   int[] n = new int[10]; //存储拆分后的数字
                   int num = 0; //存储拆分出的数字个数
                   while(m != 0){ //未拆分完
                            n[num] = m % 10;   //获得个位数字
                            num++;             //拆分出的数字个数加1
                            m /= 10;           //去掉拆分出的数字
                   }
                   int[] count = new int[10]; //存储0-9数字出现的次数
                   //统计数字出现的次数
                   for(int i = 0;i < num;i++){  //这个for循环看不懂
                            count[n[i]]++;
                   }
                   //获得最大值的下标
                   int index = 0;
                   for(int i = 0;i < count.length;i++){
                            if(count[index] <= count[i]){
                                     index = i;
                            }
                   }
                   //输出
                   System.out.println(index);

解决方案 »

  1.   

    for(int i = 0;i < num;i++){  //这个for循环看不懂
        count[n[i]]++;
    }//n 存放 1,2,3,2,3,1,2//count 存储0-9数字出现的次数//这段的目的就是遍历数组 n,将数字出现的次数累加到 count 数组相应的位置
      

  2.   


     //统计数字出现的次数 
                      for(int i = 0;i < num;i++){  //这个for循环看不懂 
                                count[n[i]]++; 
                      } 
    /*
    这个循环是遍历n[]数组,num是数组长度,看一看数组n[]中各个数字各出现几次,count[]数组就是用来存储n[]中各个数字各出现几次的,count[]大小为10,下标从0至9,正好对应0至9这10个数字,也就是说count[0]的值表示0在n[]中出现的次数,count[1]的值表示1在n[]中出现的次数......以此类推。而n[i]表示下标为i的n[]数组元素值,例如对于本程序来说n[1],n[3],n[6]的值都为2,当i为1,3,6时count[n[i]]++即分别为count[n[1]]++(count[2]++),count[n[3]]++(count[2]++),count[n[6]]++(count[2]++),count的初值为0,这样自加下来完毕后count[2]的值为3,即数字2在n[]中出现的次数。
    */
      

  3.   


    //统计数字出现的次数 
                      for(int i = 0;i < num;i++){  //这个for循环看不懂 
                                count[n[i]]++; 
                      } //这个循环是遍历n[]数组,num是数组长度,看一看数组n[]中各个数字各出现几次,count[]数组就是用来存储n[]中各个数字各出现几次的,
    //count[]大小为10,下标从0至9,正好对应0至9这10个数字,也就是说count[0]的值表示0在n[]中出现的次数,count[1]的值表示1在n[]中出现的次
    //数......以此类推。而n[i]表示下标为i的n[]数组元素值,例如对于本程序来说n[1],n[3],n[6]的值都为2,当i为1,3,6时count[n[i]]++即分别
    //为count[n[1]]++(count[2]++),count[n[3]]++(count[2]++),count[n[6]]++(count[2]++),count的初值为0,这样自加下来完毕后count[2]
    //的值为3,即数字2在n[]中出现的次数。格式不好,重排。
      

  4.   

    Java code
    //统计数字出现的次数 
                      for(int i = 0;i < num;i++){  //这个for循环看不懂 
                                count[n[i]]++; 
                      } //这个循环是遍历n[]数组,num是数组长度,看一看数组n[]中各个数字各出现几次,count[]数组就是用来存储n[]中各个数字各出现几次的,
    //count[]大小为10,下标从0至9,正好对应0至9这10个数字,也就是说count[0]的值表示0在n[]中出现的次数,count[1]的值表示1在n[]中出现的次
    //数......以此类推。而n[i]表示下标为i的n[]数组元素值,例如对于本程序来说n[1],n[3],n[6]的值都为2,当i为1,3,6时count[n[i]]++即分别
    //为count[n[1]]++(count[2]++),count[n[3]]++(count[2]++),count[n[6]]++(count[2]++),count的初值为0,这样自加下来完毕后count[2]
    //的值为3,即数字2在n[]中出现的次数。格式不好,重排。 
      

  5.   

    [code]
    Java code
    //统计数字出现的次数 
                      for(int i = 0;i < num;i++){  //这个for循环看不懂 
                                count[n[i]]++; 
                      } //这个循环是遍历n[]数组,num是数组长度,看一看数组n[]中各个数字各出现几次,count[]数组就是用来存储n[]中各个数字各出现几次的,
    //count[]大小为10,下标从0至9,正好对应0至9这10个数字,也就是说count[0]的值表示0在n[]中出现的次数,count[1]的值表示1在n[]中出现的次
    //数......以此类推。而n[i]表示下标为i的n[]数组元素值,例如对于本程序来说n[1],n[3],n[6]的值都为2,当i为1,3,6时count[n[i]]++即分别
    //为count[n[1]]++(count[2]++),count[n[3]]++(count[2]++),count[n[6]]++(count[2]++),count的初值为0,这样自加下来完毕后count[2]
    //的值为3,即数字2在n[]中出现的次数。格式不好,重排。 
    [/code]
      

  6.   


                      for(int i = 0;i < num;i++){  //这个for循环看不懂 
                                count[n[i]]++; 
                      } 
                    在这个程序中,先把m的每一位拆分到一个数组里面n[]里面,之后再创建一个数组count[]统计数字出现的个数。如果1出现了两次,那count[1]=2。所以假设在数组n[]里面有n[1]=3,n[5]=3,那个你不懂的循环就会如下执行:
    count[n[1]]++ -> count[3]++
    count[n[5]]++ -> count[3]++
    这样count[3]就纪录了数字3出现的资料。