importjava.util.Scanner;publicclass oj_0705 {publicstaticvoidmain(String[] args){Scanner input =newScanner(System.in);while(input.hasNext()){int[] a1=newint[6];int[] a2=newint[4];for(int i =0; i <6; i++){
a1[i]= input.nextInt();}for(int i =0; i <4; i++){
a2[i]= input.nextInt();}int[] a3=sub(a1,a2);for(int i=0;i<a3.length;i++){if(i==2){System.out.printf("%d",a3[i]);System.out.println();}elseSystem.out.printf("%d ",a3[i]);}}}publicstaticint[]sub(int[] list1,int[] list2){int c=0;for(int i=0;i<6;i++){for(int j=0;j<4;j++){if(list1[i]==list2[j]){
list1[i]=0;}}}for(int i=0;i<6;i++){if(list1[i]!=0){
c++;}}int[] list3=newint[c];int j=0;for(int i=0;i<6;i++){if(list1[i]!=0)
list3[j++]=list1[i];}return list3;}}
0706
又是一道数组统计次数的题目,但这次有点点不用,输出的顺序按次数照从大到小排列,当出现次数相同时,较大值优先输出
输入要求:
多组数据,每一组数据有n(1<= n <=100)个空格隔开的整数Ni(0<=Ni<=100),当输入0时,表示该组数据输入结束。
输出要求:
按照题目要求输出数字出现次数
数据示例1:
输入:
10100100231103780
输出:
100 occurs 2 times
10 occurs 2 times
3 occurs 2 times
8 occurs 1 time
7 occurs 1 time
2 occurs 1 time
1 occurs 1 time
importjava.util.Scanner;publicclass oj_0706 {publicstaticvoidmain(String[] args){Scanner input =newScanner(System.in);int[] a =newint[200];int[] b =newint[200];while(input.hasNext()){for(int i =0;; i++){
a[i]= input.nextInt();if(a[i]==0)break;
b[a[i]]++;}int[] c=newint[200];int j=0;for(int i=0;i<200;i++){if(b[i]!=0){
c[j++]=b[i];}}for(int i=0;i<c.length;i++){for(int o=i+1;o<c.length;o++){if(c[i]<c[o]){int temp=c[i];
c[i]=c[o];
c[o]=temp;}}}int o=0;for(int i=150;i>=0;i--){if(b[i]== c[o]&&o<c.length){if(b[i]==1){System.out.printf("%d occurs %d time\n", i, b[i]);}elseif(b[i]>1){System.out.printf("%d occurs %d times\n", i, b[i]);}
o++;if(c[o-1]!=c[o]) i=150;//不同时重新遍历}}for(int i=0;i<200;i++){
b[i]=0;}}}}