華為2016機試題目

2021-07-05 05:19:20 字數 1146 閱讀 5630

昨天去華為南研機試=。=

故地重遊 沒啥感慨

題目很簡單 

第一題 

輸入乙個字串,輸出其中字母、數字、空格、其他字元的個數

輸入乙個字元之後 直接比較就行

邊界條件 也就是判斷是否為空

核心**如下

void countnumber(char* str, int& numofletter, int& numofnumber, int& numofspace, int& numberofother)

}}

然而這道題 我拿了0分(不要問我為什麼 我想靜靜)

git 傳送門

第二題海邊有m只猴子,一堆香蕉,第一只猴子將香蕉分成m堆多1個,扔掉多餘的乙個香蕉,並拿走一堆之後換第二隻猴子

第二隻猴子把剩餘的香蕉分成m堆多乙個,扔掉乙個拿走一堆,換第三隻、以此類推換第四只、第五只、第m只

問這堆香蕉開始時最少有幾個

/* 3=先做乙個很簡單的推導 從後往前推

猴子編號

起始數量

剩餘數量

1m*f1+1

(m-1)*f1

2m*f2+1

(m-1)*f2

3m*f3+1

(m-1)*f3

4m*f4+1

(m-1)*f4

所以只要滿足 (m-1)*f(n)=m*f(n+1)+1 這個規律 就可以從1開始遞增求解

遞迴也好 迴圈也好隨意了

核心**如下

int banana(int m, int min)

} if (flag == false)

return banana(m, min + 1);

else

return rest;

}

git傳送門

第三題輸入乙個字串,有兩個不超過100位的大數 空格分開 取餘

大數的操作 ,其實就是字串的操作,思路也很簡單,就是實現細節的問題

我的想法是 對於小數 不斷左移(也就是 *10 *100 )

然後 大數-左移之後的小數

如此迴圈直到大數小於小數

ps 然而 實際實現的時候 我偷懶了 沒左移 直接減了 以後有機會補上

git傳送門

華為2016機試題

輸入一串用空格隔開的數字串,對於數字串的奇數字按公升序排序,偶數字按降序排序.示例輸入 4 6 2 3 6 7 8 1 處理過程 奇數字 4 2 6 8 公升序排序結果 2 4 6 8 偶數字 6 3 7 1 降序排序結果 7 6 3 1 include include using namespac...

華為機試題目

在網上找了一些華為機試的題目,每日堅持寫 1 字元 字串與數值間的轉換 分析 int i ch 48 這個語句完成了單個字元 ch 轉化為數字並存入整型變數 i 的功能。因為字元 0 在 ascii 碼中對應了 48,後面的數值也是以 1 遞增,所以用它對應的ascii碼減去48就是這單個字元的整數...

2016校招華為機試題目回憶1

根據指定的分隔符分隔字串,並輸出指定的段。如果指定的段超過分隔的段數,輸出 null 舉例 aaa?bbb?ccc?2 字串為 aaa?bbb?ccc?分隔符為 指定的段為 2 字串分割為 aaa bbb ccc共三段,第2段字串為 bbb 輸入分隔字串長度小於128個字元,指定的段是乙個正整數。輸...