CCF数字排序JAVA答案
2017-03-20 03:12
197 查看
试题编号: | 201503-2 |
试题名称: | 数字排序 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 输入格式 输入的第一行包含一个整数n,表示给定数字的个数。 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。 输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值较大的。 样例输入 12 5 2 3 3 1 3 4 2 5 2 3 5 样例输出 3 4 2 3 5 3 1 1 4 1 评测用例规模与约定 1 ≤ n ≤ 1000,给出的数都是不超过1000的非负整数。 |
package ccf;
import java.util.Scanner;
public class 数字排序 {
public static void main(String[] args) {
// TODO Auto-generated method stub
new 数字排序().run();
}
public void run(){
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] a=new int
;
for (int i=0; i<a.length;i++) {
a[i]=sc.nextInt();
}
int[] b=new int [1001];
for (int i=0;i<a.length;i++) {
b[a[i]]++;
}
int z;
int z1;
int c[]=new int [1001];
for (int i = 0; i <1001; i++) {
c[i]=i;
}
for (int i=0; i<1001; i++) {
for (int j=i+1; j<1001; j++) {
if(b[j]>b[i]){
z=b[i];
b[i]=b[j];
b[j]=z;
z1=c[i];
c[i]=c[j];
c[j]=z1;
}
if(b[j]==b[i]&&c[j]<c[i]){
z=b[i];
b[i]=b[j];
b[j]=z;
z1=c[i];
c[i]=c[j];
c[j]=z1;
}
}
}
for (int i=0;i<1001;i++) {
if(b[i]>0){
System.out.println(c[i]+" "+b[i]);
}
}
sc.close();
}}
相关文章推荐
- CCF 历年真题之数字排序(_1503_2_NumericalSorting.java )参考答案
- (JAVA)数字排序-CCF-201503-2
- CCF之数字排序(java)
- 剑指Offer(Java版):数字在排序数组中出现的次数
- 数字在排序数组中出现的次数 java
- java 控制台输入数字..并排序
- 请用数字填空,使正面十句话都正确,用java找出答案
- 【Java版本】二分查找&数字在排序数组中出现的次数
- CCF数位之和JAVA答案
- CCF计算机软件能力认证模拟试题-ISBN号码(Java参考答案学习记录)
- CCF数列分段JAVA答案
- CCF 历年真题之出现次数最多的数(_1312_1_TheHighestNumberOfOccurrences.java)参考答案
- CCF 历年真题之图像旋转(_1503_1_ImageRotation.java)参考答案
- BToj 1031问题 B: KACA的数字排序 【大数比较--结构体sort && java大数比较】
- CCF CSP 201503-2 数字排序
- 【java 面试100】14.输入一个已经按升序排序过的数组和一个数字, 在数组中查找两个数,使得它们的和正好是输入的那个数字
- CCF计算机软件能力认证试题练习-数位之和(Java参考答案学习记录)
- Java字符串排序中文+数字
- Java中使用Collections.sort()方法对数字和字符串泛型的LIst进行排序
- java 求数字在排序数组中出现的次数(O(logn))