本文由csdn-蚍蜉撼青松【主頁:
當前華為公司的一次機試,共三道不同難度的程式設計題(其中,初級題60分、中級題100分、高階題160分),機試成績》=60即可參加下一輪面試。一定程度上說,只要完全做對初級題,就可以通過機試的考驗。當然,這樣的通過肯定不太利於後面的面試。
寫作本文的目的有兩個,一是對本次參加的華為公司機試做個整理和小結,屬於自我提公升;二是讓各位求職的應屆生同道能夠直觀體驗當前一般的機試題大概是何種型別,難度又有幾分,屬於經驗分享。由於只是作為體驗而非試題彙總,所以本文只列舉了我以及我的小夥伴們遇到的幾次機試中的初級題,並不做更多的收集。
每道題包括題目詳情、程式設計思路、**實現三部分。
描述:在字串中,將重複(重複次數可以兩次以上)的英文本元(字元包括a~z、a~z)挑選出來輸出,不重複的不輸出。
執行時間限制:
無限制記憶體限制
無限制輸入:
輸入乙個字串
輸出:輸出重複的字元,按到字元第一次出現的順序輸出
樣例輸入:
aaccddaa
樣例輸出:
acd
程式設計思路:
再遍歷一次陣列cexistchar,若其出現次數大於1,則輸出。
**實現:
[cpp]view plain
copy
?#include
#include
#include
#define max_in_size 1000 // 輸入字串的最大長度
intprint_repeat_chars(
char
*pszstring)
]++;
} else
if( temp>=
'a'&& temp<=
'z')
+26]++;
} //只處理52個大小寫英文本元,其餘字元不處理
} // 遍歷cexistchar
for(i=0; i
else
if( temp>=
'a'&& temp<=
'z')
} return
0;
} int
main(
void
)
描述:森林裡的笨笨熊今天可開心啦——他買了新房子,喬遷新喜要搬家了。因此,笨笨熊請了許多好朋友來幫忙搬家,並準備了很多小紙盒用來裝需要搬的物品,不過,這些紙盒的容積都是相同的,並且最多只能裝兩個物品。但是,為了不打擾太多的朋友,笨笨熊想了個「聰明」辦法:讓每個紙盒使用效率最高(注:只要紙盒容積大於物品的體積之和就認為可以裝下;物品體積不會大於紙盒容積),這樣需要的紙盒最少。為了幫助笨笨熊提前通知朋友,請你根據笨笨熊的辦法,幫忙算出:需要紙盒的最少數目是多少?
執行時間限制:
無限制記憶體限制
無限制輸入:
整數v——紙盒的容積;
整數n——物品的總數目n;
共n個整數(對應n個物品的體積,每個整數用空格隔開)。
輸出:整數m——需要紙盒的最少數目;
樣例輸入:
102
2 3樣例輸出:1
程式設計思路:
先把所有物品按體積從大到小排個序。
然後用兩個指標分別從頭、尾向中間遍歷,直到頭指標與尾指標重合,或超過尾指標。在遍歷的過程中,對於頭指標,恆速後推;對於尾指標,取當前頭、尾指標指向的物品(即當前剩餘物品中體積最大和最小的物品),體積求和,若小於盒子的體積,則尾指標前移一位。
若頭、尾指標重合,則最少所需盒子數為頭指標的位移量+1;若頭指標超過了尾指標,則最少所需盒子數為頭指標的位移量。
**實現:
[cpp]view plain
copy
?#include
#include
#define items_count_max 100
// 冒泡降序排序
//引數 psortlist, 待排序序列
intmy_sort_bubble(
int*psortlist,
intnlistsize)
} } return
0;
} // 計算最少所需盒子數
//引數 nvolume_of_box, //盒子的容積v
//引數 nnum_of_items, //物品的數量n
//引數 pnvolume_of_items, //n個物品的體積
//返回 最少所需盒子數
intcalc_least_box_count(
intnvolume_of_box,
intnnum_of_items,
int*pnvolume_of_items)
if(i == j)
return
i+1;
return
i;
// i > j
} int
main(
void
)
描述:起步價6元,里程小於等於2公里時間少於10分鐘,收取起步價,大於2公里或者時間超過10分鐘後,同時按照兩種計費方式計算:
(1)按里程計算:每0.5公里收取0.7元(不足0.5公里不計費),大於7公里後,在此基礎上,每公里再多收取0.7元作為返程費(不足1公里不計費);
(2)按照時間計算:每3分鐘收取1.4元(不足3分鐘不計費)
最終,以二者中較大者作為最終收取費用。
執行時間限制:
無限制記憶體限制
無限制輸入:
輸入公里數(浮點數)和時間(整數,單位分鐘),以空格隔開
輸出:輸出**(保留小數點後1位)
樣例輸入:
13.4 50
樣例輸出:
25.6
程式設計思路:
分別以里程、時間為依據計算收費,取二者中的較大值。
**實現:
[cpp]view plain
copy
?#include
intmain(
void
)
} // 若時間大於10分鐘,需要另外計算 fprice2
if(ntime>10)
// 列印兩種計費方式產生的費用值中的較大值
printf("%.1f"
, fprice1>fprice2?fprice1:fprice2);
} return
0;
}
校招回顧錄 華為篇 下
2015屆 2014年夏 華為公司校招機試中級題試水 當前華為公司的一次機試。共三道不同難度的程式設計題 當中,0基礎題60分 中級題100分 高階題160分 機試成績 60就可以參加下一輪面試。一定程度上說。僅僅要全然做對0基礎題,就行通過機試的考驗。可是,可以部分或全然完畢後面的中高階題,一定會...
2017校招 回文序列
2017校招 回文序列 如果乙個數字序列逆置之後跟原序列是一樣的就稱這樣的數字串行為回文序列。例如 是回文序列,不是回文序列。現在給出乙個數字序列,允許使用一種轉換操作 選擇任意兩個相鄰的數,然後從序列移除這兩個數,並用這兩個數字的和插入到這兩個數之前的位置 只插入乙個和 現在對於所給序列要求出最少...
2015華為校招機試題
第一題 60分 按要求分解字串,輸入兩個數m,n m代表輸入的m串字串,n代表輸出的每串字串的位數,不夠補0。例如 輸入2,8,abc 123456789 則輸出為 abc00000 12345678 90000000 include include include 華為2015年第一道上機題 vo...