華為OJ之初級篇

2021-07-03 00:25:40 字數 3605 閱讀 2687

11.獎金提成

簡要描述:企業發放的獎金根據利潤提成。

利潤低於或等於100000元的,獎金可提10%;

利潤高於100000元,低於200000元(100000≤200000)時;

低於100000元的部分按10%提成;

高於100000元的部分,可提成7.5%;

200000≤400000時,低於200000元部分仍按上述辦法提成,(下同);

高於200000元的部分按5%提成;

400000≤600000元時,高於400000元的部分按3%提成;

600000≤1000000時,高於600000元的部分按1.5%提成;

i>1000000時,超過1000000元的部分按1%提成。

從鍵盤輸入當月利潤i,求應發獎金總數。

輸入:乙個整數,當月利潤。

輸出:乙個整數,獎金。

例如:輸入900

輸出90

備註:獎金向下取整,不作四捨五入處理。

答案點這裡

12.判斷任意兩台計算機的ip位址是否屬於同一子網路

請看以下示例:

運算演示之一:

子網掩碼:255.255.255.0

and運算

轉化為二進位制進行運算:

子網掩碼:11111111.11111111.11111111.00000000 

and運算:11010000.10101000.00000000.00000000 

轉化為十進位制後為: 192.168.0.0

運算演示之二:

子網掩碼:255.255.255.0 

and運算

轉化為二進位制進行運算:

子網掩碼:11111111.11111111.11111111.00000000 

and運算:11010000.10101000.00000000.00000000 

轉化為十進位制後為:192.168.0.0

通過以上對兩台計算機ip位址與子網掩碼的and運算後,我們可以看到它運算結果是一樣的。均為192.168.0.0,所以這二台計算機可視為是同一子網路。

介面說明

原型:int issamesubnetwork(char * pcip1, char * pcip2, char * pcsubnetworkmask);

輸入引數:

char * pcsubnetworkmask: 子網掩碼,格式:「255.255.255.0」

返回值:

0:ip1與ip2不屬於同一子網路。

1:ip1與ip2屬於同一子網路。

答案點這裡

13.求m的n次方的最後三位

簡要描述:正整數m 的n次方有可能是乙個非常大的數字,我們只求該數字的最後三位

例1:比如輸入5和3 ,5的3次方為125,則輸出為125 

例2:比如輸入2和10 2的10次方為1024 ,則輸出結果為24

例3:比如輸入111和5 111的5次方為116850581551,則輸出結果為551

答案點這裡

14.求車速

簡要描述:一輛以固定速度行駛的汽車,司機在上午10點看到里程表(里程表有6位)上的讀數是乙個對稱數(即這個數從左向右讀和從右向左讀是完全一樣的,例如95859公里)。兩小時後里程表上出現了乙個新的對稱數。問該車的速度(公里/小時)是多少?

介面說明

原型:int calcspeedofcar(int icurrentmileage, int * picarspeed);

輸入引數:

int pccurrentmileage:當前里程數(為對稱數) (pccurrentmileage ≤ 999999)

輸出引數:

int * picarspeed:汽車速度

返回值:

0:汽車速度計算成功

答案點這裡

15.求某二進位制數中1的個數

簡要描述:

求某二進位制數中1的個數。

給定乙個unsigned int型的正整數,求其二進位制表示中「1」的個數,要求演算法的執行效率盡可能地高。

詳細描述:

介面說明

原型:int getcount(unsigned int num)

輸入引數:

num 給定的正整數

輸出引數(指標指向的記憶體區域保證有效): 無

返回值:

返回1的個數

舉例:輸入13,則對應的二進位制是1101,那麼1的個數為3個。

則:返回3。

答案點這裡

16.求圓的面積

簡要描述:計算半徑為1到10的圓的面積,若面積在40到90之間請輸出 介面

int outputrotundityarea(float* presultarray,int &arraycount)

float* presultarray :float型陣列

int arraycount:陣列長度 規格

要求時間複雜度為o(n)

π = 3.14 

答案點這裡

17.求子陣列的最大和

簡要描述:輸入乙個整形陣列。陣列中連續的乙個或多個整數組成乙個子陣列,每個子陣列都有乙個和。求所有子陣列的和的最大值。 介面

int getsubarraysum(int* pintarray,int ncount); 規格

要求時間複雜度為o(n) 舉例

例如輸入的陣列為1, -2, 3, 10, -4, 7, 2, -5,和最大的子陣列為3, 10, -4, 7, 2,

因此輸出為該子陣列的和18

答案點這裡

18.取給定正整數的指定bit位開始的指定長度的資料

簡要描述:介面說明

原型:unsigned int getbitsvalue(unsigned int input, unsigned int startbit, unsigned int bitlen)

輸入引數:

input 輸入的整數

startbit 需要獲取的開始bit

bitlen 需要獲取的bit長度

輸出引數(指標指向的記憶體區域保證有效): 無

返回值:

對應的bit取值

舉例:輸入:4, 2, 2

返回:2

4對應的二進位制為100(bit0和bit1為0,bit2為1),那麼從bit2開始的2位為10,那麼對應的十進位制為2。

答案點這裡

19.上樓梯問題

簡要描述:愛因斯坦出了一道這樣的數學題:有一條長階梯,若每步跨2階,則最最後剩一階,若每步跨3 階,則最後剩2階,若每步跨5階,則最後剩4階,若每步跨6階則最後剩5階。只有每次跨7階,最後才正好一階不剩。請問這條階梯共有多少階?

答案點這裡

20.數列求和

簡要描述:編寫程式,輸入乙個正整數n,求下列算式的值。要求定義和呼叫函式fact(k)計算k的階乘。

1+1/2!+ .... +1/n!

計算結果儲存在double型別變數中。

介面說明

原型:void getresult(int inputnum, double *numresult);

輸入引數:

int inputnum:輸入乙個正整數,進行表示式計算

char *numresult:輸出表示式的值

返回值:

void

答案點這裡

華為OJ之初級篇

21.數字統計 簡要描述 對輸入的整型陣列,輸出陣列元素中的最大值 最大值的個數 最小值和最小值的個數 詳細描述 介面說明 原型 voidoutputmaxandmin int pinputinteger,intinputnum,int pmaxvalue,int pmaxnum,int pminv...

華為OJ之初級篇

本文章旨在提供乙個互相學習和交流的平台,也作為oj刷題這段時光的記錄。本人非計算機科班出身,程式主要以實現功能性需求為主,暫不考慮效能 質量等因素。以下oj題目順序為成功通過機器驗證的順序,本篇題目全出自初級題系列。為了保證本文介面的簡潔性,以 片形式給出,見相關 答案點這裡 鏈結。1.在字串中找出...

華為OJ題目 初級篇(機試OJ平台)

華為oj初級篇是本人蒐集的一些題目,都run過ok,初級題我個人感覺必要在15 20min以內完成,不然時間不夠用,一共三道,後兩道中高階題目。題目一 作業系統任務排程問題。作業系統任務分為系統任務和使用者任務兩種。其中,系統任務的優先順序 50,使用者任務的優先順序 50且 255。優先順序大於2...