今天这道题目是一道众数的题目,接替方法很巧妙,开始一直找不到方法,绕了很大的弯,最后转个弯,竟然找到了简单的方法
输入20个1~10的数字,让你求出现最多的一个数。
解题思路:
创建一个1~10的数组,这是记录出现个数的。每次从键盘输入数字时,输入数字,就在相对应的数组下标上加1,输入完后就只需要比较数组的大小,数字大的对应的坐标就是对应的数。
代码如下:
import java.util.Scanner;
public class POJ1057_1 {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
while (cin.hasNextInt()) {
int[] a = new int[11];
int i = 20;
// for (int k = 0; k < a.length; k ++)
// System.out.println(a[k]);
while (i != 0) {
int k = cin.nextInt();
a[k] ++;
// System.out.println(a[k]);
i --;
}
// for (int j = 0; j < a.length; j++)
// System.out.println(a[j]);
int max = 1;
for (int j = 2; j < 11; j++) {
if (a[max] < a[j])
max = j;
}
System.out.println(max);
}
}
}