2020 計算機能力挑戰賽 模擬題


4.由N(N<=10000)個整數組成的數組,其中連續K(K<=200)個元素構成一個區間,稱為K區間。一個K區間中所有素數的和記為Sk,請計算整個數組中,所有K區間中的最大Sk值,並輸出。
輸入說明:第一行是兩個整數N和K,第二行輸入N個數,表示數組中的元素。
輸出說明:最大Sk值
輸入樣例:8 2
12 23 27 34 19 17 45 8
輸出樣例:36

 

public static void main(String [] s){   
   Scanner input=new Scanner(System.in);
       int N= input.nextInt();
       int k=input.nextInt();
       int [] array=new int[N];
       for(int i=0;i<N;i++)
           array[i]=input.nextInt();
       int maxSum=0;
       for(int i=0;i<=N-k;i++)
       {
           int sum=0;
           for(int j=0;j<k;j++)
           {
               if(IStarget(array[i+j]))
                   sum+=array[i+j];
           }
           maxSum=Math.max(sum,maxSum);
       }
       System.out.println(maxSum);
}
    public static  boolean IStarget(int num)
    {
        for(int i=2;i<num/2;i++)
            if(num%i==0)
                return false;
            return true;
    }

 

 

5.倉庫新進了幾批物資,只知道每批物資的數量和單價,請編寫程序,按照每種物資的總價值,由高到低次序輸出。
輸入說明:第1行 一個整數N,表明物資的批次數量
第2-N+1行,每批物資的類別、數量及單價,中間用空格隔開,其中類別用A-Z加以區分。
輸出說明:按物資價值降序輸出排序結果,每行輸出一種物資。
輸入樣例:5
A 5 10.00
B 3 2.00
A 5 8.00
B 3 2.50
C 10 3.50
輸出樣例:A 90.00
C 35.00
B 13.50

 public static void main(String [] s){  
    Scanner input=new Scanner(System.in);
        int x=input.nextInt();
        Map<Character,Double> hs=new HashMap<>();
        for(int i=0;i<x;i++)
        {
            char index=input.next().charAt(0);
            hs.put(index,hs.getOrDefault(index,0.0)+ input.nextInt()*input.nextDouble());
        }

       while(!hs.isEmpty())
       {
           double money=0;
           char index='a';
           for(char key:hs.keySet())
           {
               if(hs.get(key)>money)
               {
                   index=key;
                   money=hs.get(key);
               }
           }
           System.out.println(index+" "+hs.get(index));
           hs.remove(index);
       }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM