1060 愛丁頓數 理解與踩坑分析以及測試點分析

2021-09-19 16:00:28 字數 1056 閱讀 2372

1060 愛丁頓數 (25 分)

英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力,還定義了乙個「愛丁頓數」 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

首先肯定是排序了,然後就讓e是最大的數,乙個while迴圈每一e--一次,看有多少天大於e(儲存為enum) 如果enum>=e那麼就是候選

**如下:

#include #include #include using namespace std;

bool cmp(int a,int b)

int main()

sort(sn,sn+n,cmp);

//從大到小排序完畢,之後才是關鍵

int out=0;//輸出結果,預設是0,有個測試點就是沒有愛丁頓數,輸出0 就好了

int e=sn[0];//e直接取最大,然後每次--

int i=0;//儲存陣列位置,方便求大於e的個數有多少

while(i0) {

while(ie)

i++;

int enum=i;

if(enum>=e)

if(out測試點3就是 所有數字都大於n 就是說 5個數字 但是每個數字都大於5,這種情況其實就是輸出n

測試點4 輸出0,我的理解就是沒有符合的愛丁頓數,或者說0符合,不太理解

我上面是從英里上面考慮的,還有乙個角度是天數上考慮,**在柳神微博裡,貼個位址

具體思路是:求 滿足有e天騎車超過e英里的整數 ,那麼從大到小排序後,對於e天,a[e]要大於e(這樣才滿足e天超過e英里,可能需要理解一下。

1060 愛丁頓數

英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力,還定義了乙個 愛丁頓數 e,即滿足有e天騎車超過e英里的最大整數e。據說愛丁頓自己的e等於87。現給定某人n天的騎車距離,請你算出對應的愛丁頓數e n 輸入格式 輸入第一行給出乙個正整數n 105 即連續騎車的天數 第二行給出n個非負整數,...

1060 愛丁頓數

英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力,還定義了乙個 愛丁頓數 e 即滿足有 e 天騎車超過 e 英里的最大整數 e。據說愛丁頓自己的 e 等於87。現給定某人 n 天的騎車距離,請你算出對應的愛丁頓數 e n 輸入第一行給出乙個正整數 n 10 5 即連續騎車的天數 第二行給出...

1060 愛丁頓數

題意描述 英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力,還定義了乙個 愛丁頓數 e 即滿足有 e 天騎車超過 e 英里的最大整數 e。據說愛丁頓自己的 e 等於87。現給定某人 n 天的騎車距離,請你算出對應的愛丁頓數 e n 輸入格式 輸入第一行給出乙個正整數 n 10 5 即連續騎...