`
xifangyuhui
  • 浏览: 185810 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

统计一个整数中出现次数最多最大的数字

 
阅读更多

要求:

     统计一个整数中出现最多的数字。如果数字个数一样,则以最大的数字为准,例如 1 输出 1,121 输出 1,23231 输出 3。

 

针对这个问题,处理步骤可以分为2步:

第一步:首先抽离整数中的每个数字,并且放到该数字对应的桶数组中,桶数组是一个长度为10的数组,其中数组的每个索引都表示整数中可能出现的数字,数组索引0到9刚好表示0到9这10个数字。至于抽离数字可以先将整数对10取模,得到的最低位的数字,再将该数字对应的数组位置的元素加1,接着再将整数除以10,这样到整数为0时,就已抽离出整数中的所有数字。

 

第二步:现在桶数组中的10个元素表示的是整数中所有数字的出现次数,例如573257抽离完后数组中所因为2,3,5,7的四个位置的值应该为1,1,2,2。循环得到数组中的最大元素,并且保留索引。如果有两个数字出现次数一样,遍历桶数组也能获取整数中其中最大的数字,大家仔细想想就知道了。

 

代码

public class NumberStat {

	public static void main(String[] args) {
		int number = 573257;
		//桶数组,数组的索引就表示整数中的各个数字,数组元素表示该索引在数组中出现的次数
		int[] barrel = new int[10]; 
		//抽取各个数字并且放入到barrel中
		getNumber(number, barrel);
		int max = barrel[0]; //max存放最多的次数
		int index = 0; //index存放出现次数最多的数字
		for(int i=1; i<barrel.length; i++) {
			if(max<=barrel[i]) {
				max =barrel[i];
				index = i;	
			}
		}
		System.out.println("出现次数最多的数字是:" + index + ",出现的次数是:" + max);
	}

	/*
	 * 循环地对整数对10取模,并将得到的数字放入其对应的桶中
	 * 接着对整数除10,当numer为0时,所有的数字都已抽离
	 */
	private static void getNumber(int number, int[] barrel) {
		while(number!=0) {
			int num = number%10;
			barrel[num]++;
			number/=10;
		}
	}
}

 

出现次数最多的数字是:7,出现的次数是:2

 

 

0
0
分享到:
评论

相关推荐

    输入若干个整数,统计出现次数最多的那个整数。如果出现最多的整数有两个以上,打印最早输入的那个整数。

    【输入形式】 从标准输入读取输入。...向标准输出打印出现次数最多的那个数字。 【输入样例】 6 11 0 -1 20 0 300 【输出样例】 0 【样例说明】 输入6个整数,其中出现次数最多的是0,共出现两次。

    java随机生成50个数字并统计出现次数

    java随机生成50个数字并统计出现次数,生成随机数的同时,记录出现的次数,并显示出现最多次数的数字及次数

    汇编语言 20个练习题目 代码加实验报告

    5.14 在首地址为TABLE的数组中按递增次序存放着100H个16位补码数,试编写一个程序把出现次数最多的数及其出现的次数分别放在AX和CX中。 5.15 数据段中已定义了一个有N个字数据的数组M,试编写一程序求出M中绝对值...

    上海电机学院C语言实训答案

    输入一个正整数n (1),再输入n 个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n 个数。 (25)抓住肇事者 一辆卡车违反交通规则,撞人后逃跑。现场共有三个目击者,但都没有记住车号,...

    信奥赛c++程序算法篇100题

    1478. 出现次数最多的小写字母 6 1098. 判断是否构成回文 7 1102. 字符串中的空格移位 7 1125. 删除字符串中间的* 8 1133. 字符串的反码 8 1312. 看完动漫要几天? 9 1402. 字符串加密? 10 3.字符串进阶 10 ...

    问题 I: 锤子剪刀布 (20) 石头剪刀布.cpp

    第3行给出两个字母,分别代表甲、乙获胜次数最多的手势,中间有1个空格。如果解不唯一,则输出按字母序最小的解。 样例输入 Copy 10 C J J B C B B B B C C C C B J B B C J J 样例输出 Copy 5 3 2 2 3 5 B B

    算法分析与设计习题集答案

    20、 键盘输入一个高精度的正整数N(此整数中没有‘0’),去掉其中任意S个数字后剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和S,寻找一种方案使得剩下的数字组成的新数最小(输出应包括所去掉的...

    描述性数据分析.pdf

    3、众数:数据中出现次数最多的数字,即频数最⼤的数值。众数可能不⽌⼀个,众数不能能⽤于数值型数据,还可⽤于⾮数值型数据,不 受极值影响。 4、极差:=最⼤值-最⼩值,是描述数据分散程度的量,极差描述了数据...

    Excel公式与函数大辞典.宋翔(带书签高清文字版).pdf

    4.2.3 OR——判断多个条件中是否至少有一个条件成立 155 4.2.4 XOR——判断多个条件中是否有一个条件成立 156 4.2.5 IF——根据条件判断而返回不同结果 156 4.2.6 IFNA——判断公式是否出现#N/A错误 158 4.2.7 ...

    P2P视频技术源码(VC)

    openMedia: 参数为md5和一个整数指针, 返回FILE *以及该文件的长度, 在整数指针中 7) Job模块 Job模块用在CP和SP中, 用来处理PUSHLIST, PUSHLIST消息可以重新设置Job的列表, 也可以添加Job或者是删除Job. 涉及到job...

    python cookbook(第3版)

    1.12 序列中出现次数最多的元素 1.13 通过某个关键字排序一个字典列表 1.14 排序不支持原生比较的对象 1.15 通过某个字段将记录分组 1.16 过滤序列元素 1.17 从字典中提取子集 1.18 映射名称到序列元素 1.19...

    P2P视频播放器 详细制作实例

    openMedia: 参数为md5和一个整数指针, 返回FILE *以及该文件的长度, 在整数指针中 7) Job模块 Job模块用在CP和SP中, 用来处理PUSHLIST, PUSHLIST消息可以重新设置Job的列表, 也可以添加Job或者是删除Job. 涉及到...

    C语言程序设计标准教程

    第四行的输出语句格式控制串中,两格式串%d 之间加了一个空格(非格式字符),所以输出的a,b值之间有一个空格。第五行的printf语句格式控制串中加入的是非格式字符逗号, 因此输出的a,b值之间加了一个逗号。第六行的...

    数据结构(C++)有关练习题

    &lt;br&gt;实验四 综合(课程设计) 内容及步骤: 1、假定一维数组a[n]中的每个元素值均在[0,200]区间内,用C++编写一个算法,分别统计出落在[0,20],[21,50],[51,80],[81,130],[131,200]等各区间内的元素...

    最新JAVA编程题全集_50题及答案

    写一个函数,例如:给你的 a b c 则输出 abc acb bac bca cab cba import java.util.ArrayList; import java.util.List; public class NumTest { public static void main(String[] args) { String s="ABCD";...

    SQL语法大全

    MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法: sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" set rs=conn....

    华为编程开发规范与案例

    话单池的一个备份指针Pool_head_1和中继计次表的头指针重合,影响到第一个中继计次表的计费。 思考与启示: 随机值的背后往往隐藏着指针问题,两块内存缓冲区的交界处比较容易出现问题,在编程时是应该注意的地方...

Global site tag (gtag.js) - Google Analytics