【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 (≤105),即連續騎車的天數;第二行給出 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; }

