我遇到了以下面試問題。Integer分區
考慮這個函數聲明:
void quiz(int i) { if (i > 1) { quiz(i/2); quiz(i/2); } writeOutput("*"); }
多少個星號通過函數調用
quiz(5)
印刷?
我的回答是:
語言(JavaScript中,PHP等)整數除法結果類型爲浮動 - 七個星號。函數測驗被稱爲:
- 隨着i = 5 - 一旦打印星號。
- 隨着i = 2.5 - 兩次,打印星號。
- i = 1.25 - 四次,打印星號。
- 其中i = 0.625 - 八次,沒有星號印刷
語言(C/C++,C#,Java等)的除法結果類型名稱是 整數 - 三個星號。函數測驗被稱爲:
- 隨着i = 5 - 一旦打印星號。
- 隨着i = 2 - 兩次,打印星號。
- 隨着i = 1 - 四次,未打印星號。
問題的語法是像C/C++,Java,所以答案應該是三個
採訪是a closed book exam
- 面試我無法運行該代碼,並檢查過程中。面試官告訴我,我的回答並不完全正確(或者至少,他們沒有想到會是這樣)。 Hovewer,我在家裏運行了這個代碼(用PHP,Javascript和C#),結果如我所描述的那樣。
那麼,有沒有一些注意事項我錯過了,或者我的回答只是比他們期待的更詳細?
我不知道我的頭頂有多準確或正確的答案(儘管如果我正在進行面試,我會認爲這是一個很好的答案),但總是有可能面試官不正確或只是普通人不知道更好,即使他認爲他確實如此。我一直在公平地分享面試,桌子後面的人沒有資格參加面試的工作。 – David
運行該代碼不會給我你所描述的答案。 –