题目
题目描述+运行示例
**7.3(计算数字的出现次数)编写程序,读取1到100之间的整数,然后计算每个数出现的次数。输入0表示结束
如果一个数出现的次数大于1次,就在输出时使用复数times
下面是一个运行示例:
Enter the integer between 1 and 100:2 5 6 5 4 3 23 43 2 0
2 occurs 2 times
3 occurs 1 time
4 occurs 1 time
5 occurs 2 times
6 occurs 1 time
23 occurs 1 time
43 occurs 1 time
破题
法一
- 声明一个数组lst
- 先获取传入了多少个数字
- 读取整数,判断是否符合“0到100之间的整数”标准,如果不符合则丢弃数据并结束程序,如果读到0则结束读取
- 对数组进行排序Arrays.sort(lst)
- 对数组进行遍历,计算每个数出现的次数并输出
法二
基本思想:
- 先用一个数组lst1,接收用户输入:
int[] lst1 = new int[101];
do{
n = input.nextInt();
++lst1[n];
}while(n != 0);
这个时候下标数=用户输入的整数,而lst[下标数] = 下标数出现的次数
2. 将lst1数组遍历一边,下标index即输出的数字、lst[index]即这个数字出现的次数,对lst[index]分三种情况讨论输出即可
for (int i = 0; i < 101;i++){
if (lst[i] == 0){
continue;}
else if (lst1[i] == 1){
System.out.println(i + " occurs " + lst1[i] + " time");
} els