【PAT乙級】愛丁頓數

  • 2019 年 11 月 8 日
  • 筆記

版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。

本文鏈接:https://blog.csdn.net/weixin_42449444/article/details/84841194

題目描述:

英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力,還定義了一個「愛丁頓數」 E ,即滿足有 E 天騎車超過 E 英里的最大整數 E。據說愛丁頓自己的 E 等於87。

現給定某人 N 天的騎車距離,請你算出對應的愛丁頓數 E(≤N)。

輸入描述:

輸入第一行給出一個正整數 N (≤10​5​​),即連續騎車的天數;第二行給出 N 個非負整數,代表每天的騎車距離。

輸出描述:

在一行中給出 N 天的愛丁頓數。

輸入樣例:

10  6 7 6 9 3 10 8 2 7 8

輸出樣例:

6

AC程式碼:

#include <bits/stdc++.h>  using namespace std;    bool Cmp(int a,int b)  {      return a > b;  }    int main()  {      int n;      cin >> n;    //n為連續騎車的天數      int a[n+1];      for (int i = 1; i <= n; i++)      {          cin >> a[i];  //從第一天開始,每天的騎車距離      }      sort(a+1,a+n+1,Cmp);  //對這n天的騎車距離從大到小排序      int E = 0;  //愛丁頓數      int i = 1;      while(i<=n && a[i]>i)   //E他的騎車距離超過E英里的最大整數E      {          E++;          i++;      }      cout << E << endl;      return 0;  }