IT技术博客大学习 共学习 共进步

“火柴棍式”程序员面试题

酷壳 - CoolShell.cn 2011-06-02 13:19:50 累计浏览 4,083 次

    有时候,有些面试题是很是无厘头,这不,又有一个,还记得小时候玩的的“火柴棍游戏”吗,就是移动一根火柴棍改变一个图或字的游戏。程序面试居然也可以这么玩,看看下面这个火柴棍式的程序面试题吧。

    下面是一个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--)

    不过,我要告诉你,以上这些答案都不对(我就知道你会偷看答案的),不过,顺着这些思路走很接近了。呵呵。

    下面是正确答案――

    ------对不起,你需要回复才能查看内容------

    其它相关的变种题如下:

  • 通过修改、增加一个字符,让其输出21个减号
  • 通过修改、增加一个字符,让其只输出1个减号
  • 通过修改、增加一个字符,让其不输出减号
  • 建议继续学习

    1. Java开发岗位面试题归类汇总 (累计阅读 21,763)
    2. 面试题 – 为什么我的朋友圈不见了? (累计阅读 11,804)
    3. 加州求职记 (累计阅读 11,364)
    4. 整理了一份招PHP高级工程师的面试题 (累计阅读 11,305)
    5. 海量数据面试题举例 (累计阅读 10,827)
    6. 腾讯php程序员面试题目答案 (累计阅读 8,804)
    7. 面试IT业界顶尖企业所应该知道的10道题(1) (累计阅读 8,344)
    8. 如何在面试中发现优秀程序员 (累计阅读 8,104)
    9. 聊聊ThoughtWorks面试 (累计阅读 7,424)
    10. IBM面试记 (累计阅读 7,225)