问题描述:给定含有n个元素的多重集合S,每个元素在S中的次数称为该元素的重数。多重集S中重数最大的元素称为众数。
例如,S={1,2,2,2,3,5}。众数为2,其重数为3。
任务:对于给定的由n个自然数组成的多重数集S,编程计算S的众数及其重数。
import java.util.Scanner;
public class Q2_1 {
public static void main(String[] args) {
Scanner input=new Scanner(System.in);
System.out.println("输入数字个数");
int n=Integer.valueOf(input.nextLine());
int[] num=new int[n];
for (int i = 0; i < num.length; i++) {
num[i]=Integer.valueOf(input.nextLine());
}
int[] num2=new int[n];
int[] geshu=new int[n];
int ji=0;
for (int i = 0; i < num.length; i++) {
for (int j = 0; j <= i; j++) {
if(num[i]==num2[j]){
geshu[j]++;
break;
}
if(j==i){
num2[ji]=num[i];
geshu[ji++]++;
break;
}
}
}
int t=geshu[0];
for (int i = 1; i < geshu.length; i++) {
if(geshu[i]>t){
t=geshu[i];
}
}
for (int i = 0; i < num2.length; i++) {
if(geshu[i]==t){
System.out.println(num2[i]+" 个数:"+geshu[i]);
}
}
}
}