天天看點

藍橋杯官網 試題 PREV-225 曆屆真題 成績分析【第十一屆】【決賽】【研究所學生組】【C++】【C】【Java】【Python】四種解法

為幫助大家能在6月18日的比賽中有一個更好的成績,我會将藍橋杯官網上的曆屆決賽題目的四類語言題解都發出來。希望能對大家的成績有所幫助。

今年的最大目标就是能為【一億技術人】創造更高的價值。

資源限制

C++

#include <bits/stdtr1c++.h>
using namespace std::tr1;
using namespace std;
int main()
{
    int n;
    cin >> n;
    int sum = 0, tp;
    int mx, mi;
    mx = 0, mi = 100;
    for (int i = 0; i < n; i++)
    {
        cin >> tp;
        sum += tp;
        mx = max(mx, tp);
        mi = min(mi, tp);
    }
    unordered_map<int, int> ump;
    printf("%d\n%d\n%.2f\n", mx + ump.size(), mi, 1.0 * sum / n + 1e-8);
    return 0;
}      

C

#include<stdio.h>
int main()
{
    int i;
    float p, max = -1, min = 1000;
    float grades,av, sum = 0;
    scanf("%f", &p);
    for(i=0;i<p;i++)
    {
        scanf("%f", &grades);
        if (grades < min)
            min = grades;
        if (grades > max)
            max = grades;
        sum += grades;
    }
    av = sum / p;
    printf("%.0f\n%.0f\n%.2f", max, min,av);
    return 0;
}      

Java

import java.io.*;
import java.math.BigDecimal;
public class Main {
  static class Input{
    StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
    public int nextInt() throws IOException{
      in.nextToken();
      return (int)in.nval;
    }
  }
  
  public static void main(String args[]) throws Exception{
    Input in = new Input();
    int n = in.nextInt();
    int sum = 0;
    int max = 0;
    int min = Integer.MAX_VALUE;
    for(int i=0;i<n;i++) {
      int s = in.nextInt();
      if(s > max) {
        max = s;
      }
      if(s < min) {
        min = s;
      }
      sum +=s;
    }
    BigDecimal r = new BigDecimal(sum+"").divide(new BigDecimal(n+""), 2, BigDecimal.ROUND_HALF_UP);
    System.out.println(max);
    System.out.println(min);
    System.out.println(r);
  }
  
}      

Python

n = int(input())
lists = []
sum1 = 0
for i in range(0, n):
    lists.append(int(input()))
for i in range(0, len(lists)):
    sum1 += lists[i]
print(max(lists))
print(min(lists))
print('%0.2f' % (sum1/len(lists)))