1060 愛丁頓數 (25 分)
英國天文學家愛丁頓很喜歡騎車。據說他為了炫耀自己的騎車功力,還定義了乙個「愛丁頓數」 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
首先肯定是排序了,然後就讓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 即連續騎...