微軟筆試面試題集錦

2021-05-31 22:42:36 字數 840 閱讀 6769

(一)程式設計實現兩個正整數的除法

程式設計實現兩個正整數的除法,當然不能用除法操作符 

想法是這樣的:被除數不斷減去含除數的最大2^n倍數。例如,200/5,那麼以此為200-5*2^5=40 result = 2^5 =32 ,40-5*2^3=0 result=32+2^3 = 40。所以結果為40.

int div(const int x, const int y) 

result += multi;

left_num -= y * multi;

}return result;

}

問題擴充套件:

如果需要測試上面這個函式,需要哪些測試用例?

1)正負數的組合

2)除數與被除數大小組合

(二) 一塊長方形的蛋糕,其中有乙個小長方形的空洞(角度任意)。使用一把直刀,如何一刀將蛋糕切成相等的兩份?

回答:通過長方形中心的的任意直線都能將長方形等分,所以連線兩個長方形的中心點的直線可以等分這個蛋糕。

(三)寫程式找出二叉樹的深度

乙個樹的深度等於max(左子樹深度,右子樹深度)+1。可以使用遞迴實現。

struct node ;

int getdepth(node* root)

int left_depth = getdepth(root->left);

int right_depth = getdepth(root->right);

return left_depth > right_depth ? left_depth + 1 : right_depth + 1;

}

微軟筆試面試題集錦

一 最基本題型 說明 此類題型比較簡單 1 1到100有多少個9 2 連續整數之和為1000的共有幾組 3.u2合唱團在17分鐘內得趕到演唱會場,途中必需跨過一座橋,四個人從橋的 同一端出發,你得幫助他們到達另一端,天色很暗,而他們只有乙隻手電筒。一次同時最多可以有兩人一起過橋,而過橋的時候必須持有...

微軟筆試題集錦

1.下面哪一項是二進位制數01011001乘以0111001後再加上1101110的結果 a 0001010000111111 b 0101011101110011 c 0011010000110101 解析 不需要硬算,前面乘出來最後三位是001,這樣加起來最後三位就是111 2.a,b,c,d都...

微軟筆試面試題目

智力題 1 燒一根不均勻的繩子,從頭燒到尾總共需要1個小時,問如何用燒繩子的方法來確定半小時的時間呢?2 10個海盜搶到了100顆寶石,每一顆都一樣大小且價值連城。他們決定這麼分 1 抽籤決定自己的號碼 1 10 2 首先,由1號提出分配方案,然後大家表決,當且僅當超過半數的人同意時,按照他的方案進...