ccf出現回数が最も多い数java構想
1708 ワード
試験問題番号:
201312-1
試験問題名:
出現回数が最も多い数
時間制限:
1.0s
メモリの制限:
256.0MB
問題の説明:
問題の説明
n個の正の整数を与え,それらの中で最も出現回数の多い数を探し出す.このような数が複数ある場合は、その中の最小の1つを出力します.
入力フォーマット
入力された最初の行には正の整数n(1≦n≦1000)が1つしかなく、数字の個数を表す.
入力された2行目にはn個の整数sがある
1, s
2, …, s
n (1 ≤ s
i ≤ 10000, 1 ≤ i ≤ n).隣接する数はスペースで区切られています.
出力フォーマット
このn個の回数の中で出現回数が最も多い数を出力する.このような数が複数ある場合は、その中の最小の1つを出力します.
サンプル入力
6
10 1 10 20 30 20
サンプル出力
10
考え方:状況を分けて討論する.
一つは同じ数が存在することであり、一つはすべての数が異なることである.
第1に、forサイクルで後のデータを前のデータと比較し、同じであればnumを1つ加算し、同時に後の数を0に割り当てる.
第2の場合、異なる場合はcountを1加算し、データがすべて異なる場合はcountの値はn(n+1)/2.となる.
でもなぜか、総得点は90点しかありません.
もう一度やったんだccfテストに問題があるんだ
次は満点です
しかし、上記のプログラムの中の大サイクルの中のループをtの初期値をi+1に割り当て、countの初期値を1に割り当てると、このプログラムは90点しかありません......
しかし、これは上のプログラムと意味が一致しているのでしょうが、点数が違うので、酔っ払ってしまいました・・・
201312-1
試験問題名:
出現回数が最も多い数
時間制限:
1.0s
メモリの制限:
256.0MB
問題の説明:
問題の説明
n個の正の整数を与え,それらの中で最も出現回数の多い数を探し出す.このような数が複数ある場合は、その中の最小の1つを出力します.
入力フォーマット
入力された最初の行には正の整数n(1≦n≦1000)が1つしかなく、数字の個数を表す.
入力された2行目にはn個の整数sがある
1, s
2, …, s
n (1 ≤ s
i ≤ 10000, 1 ≤ i ≤ n).隣接する数はスペースで区切られています.
出力フォーマット
このn個の回数の中で出現回数が最も多い数を出力する.このような数が複数ある場合は、その中の最小の1つを出力します.
サンプル入力
6
10 1 10 20 30 20
サンプル出力
10
考え方:状況を分けて討論する.
一つは同じ数が存在することであり、一つはすべての数が異なることである.
第1に、forサイクルで後のデータを前のデータと比較し、同じであればnumを1つ加算し、同時に後の数を0に割り当てる.
第2の場合、異なる場合はcountを1加算し、データがすべて異なる場合はcountの値はn(n+1)/2.となる.
package Demo;
import java.util.*;
public class ccf2013_1_1{
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] a=new int[n];
for(int n1=0;n10)//
{
num++;
x[t]=0;
if(num>maxnum)
{
maxnum=num;
maxValue=x[i];
}
else if(num==maxnum)
{
if(x[i]
でもなぜか、総得点は90点しかありません.
もう一度やったんだccfテストに問題があるんだ
次は満点です
import java.util.Scanner;
public class ccf2013_12_1_0 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
int[] num=new int[n];
for(int i=0;imaxcount)
{
maxcount=count;
value=num[i];
}
else if(count==maxcount)
{
if(num[i]
しかし、上記のプログラムの中の大サイクルの中のループをtの初期値をi+1に割り当て、countの初期値を1に割り当てると、このプログラムは90点しかありません......
しかし、これは上のプログラムと意味が一致しているのでしょうが、点数が違うので、酔っ払ってしまいました・・・