“火柴棍式”程式設計師面試題

encienqi發表於2011-05-03

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

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

1
2
3
4
5
int n = 20;
  
for(int i = 0; i < n; i--){
    printf("-");
}

不要以為這題不是很難,我相信你並不那麼容易能找到3種方法。我覺得,如果你能在10分鐘內找出這三種方法,說明你真的很聰明,而且反應很快。當然,15分鐘內也不賴。不過,你要是30分鐘內找不到三種方法,當然,不說明你笨了,最多就是你的反應還不夠快。嘿嘿。就當是玩玩吧。

 

 

 

 

 

 

 

 

 

 

 

 

下面是正確答案——

 

 

1
2
3
4
5
6
7
8
//第一種解法:在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個減號
  • 通過修改、增加一個字元,讓其不輸出減號

相關文章