Java编程那些事儿47—数组操纵示例3[Java编程]
本文“Java编程那些事儿47—数组操纵示例3[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
6.3.7 数字统计
要求:统计一个整数中呈现最多的数字.假如数字个数一样,则以最大的数字为准,比方1输出1,121输出1,23231输出3.
该题是一个综合的标题,在实际解析时可以分化成三个问题:1、把整数中的每个数字拆分出来,2、统计拆分出的数字中0-9每个的个数,3、得到数字个数的最大值.
实现思绪:
1、拆分数字:整数和10取余可以得到该整数的个位值,然后用该整数除以10可以去掉个位(整数除法),按照这种构造实现循环,并把拆分出的数字(也就是余数)存储到数组中.
2、统计数字:声明一个长度是10的整型数组,利用这个数组中的第一个元素保存数字0呈现的次数,第二个元素保存数字1呈现的次数,顺次类推.利用循环实现数字个数的统计.
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++){
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);
在该代码中,拆分的十进制的数字,首先拆分出个位,并存储到n数组中,然后通过除10去掉拆分出的数字,持续履行循环,一向运算到m为0时为止,变量num保存拆分出的数字的个数.利用数组count记忆0-9每个数字呈现的次数,count[0]存储0呈现的次数,count[1]存储1呈现的次数,顺次类推,所以当n[i]的值为几时,只需求count[n[i]]增添1便可.最后利用循环得到最大数字的下标,实用<=举行对比,可以保证当个数相同时取后续的数字,这样便可以通过循环得到最大数值的下标,按照数组count的构造,数组的下标和就是数字的值.
以上是“Java编程那些事儿47—数组操纵示例3[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |