“火柴棍式”程序員面試題

原文作者:陳皓,原文地址:http://coolshell.cn/articles/3961.html

有時候,有些面試題是很是無厘頭,這不,又有一個,還記得小時候玩的的“火柴棍遊戲”嗎,就是移動一根火柴棍改變一個圖或字的遊戲。程序面試居然也可以這麼玩,看看下面這個火柴棍式的程序面試題吧。

下面是一個C程序,其想要輸出20個減號,不過,粗心的程序員把代碼寫錯了,你需要把下面的代碼修改正確,不過,你只能增加或是修改其中的一個字符,請你給出三種答案。

int n = 20;
 
for(int i = 0; i < n; i--){
    printf("-");
}
不要以爲這題不是很難,我相信你並不那麼容易能找到3種方法。我覺得,如果你能在10分鐘內找出這三種方法,說明你真的很聰明,而且反應很快。當然,15分鐘內也不賴。不過,你要是30分鐘內找不到三種方法,當然,不說明你笨了,最多就是你的反應還不夠快。嘿嘿。就當是玩玩吧。

下面是我的答案:
//第一種解法:在for循環中給n加一個負號
for(int i = 0; i < -n; i--)
 
//第二種解法:把 n 初始化成 -20
int n = -20;
 
//第三種解法:把for循環中的 i 初始化成40
for(int i = 40; i < n; i--)
不過,我要告訴你,以上這些答案都不對(我就知道你會偷看答案的),不過,順着這些思路走很接近了。呵呵。

下面是正確答案——
//第一種解法:在for循環中給 i 加一個負號
for(int i = 0; -i < n; i--)
 
//第二種解法:在for循環中把 i-- 變成 n--
for(int i = 0; i < n; n--)
 
//第三種解法:把for循環中的 < 變成 +
for(int i = 0; i + n; i--)
其它相關的變種題如下:
通過修改、增加一個字符,讓其輸出21個減號
通過修改、增加一個字符,讓其只輸出1個減號
通過修改、增加一個字符,讓其不輸出減號


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章