IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

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

酷壳 - CoolShell.cn 2011-06-02 13:19:50 累计浏览 4,148 次
本机暂存

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

    下面是一个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. 对基本有序的序列排序算法 (2026-06-11 17:46:49)
    2. Four Levels Of Customer Understanding (2026-05-22 21:00:00)
    3. 除法的意义 (2026-04-12 20:52:17)

    查看更多 算法 文章 →

    建议继续学习

    1. 为什么算法这么难? (累计阅读 12,397)
    2. 浅谈MySQL索引背后的数据结构及算法 (累计阅读 11,903)
    3. 加州求职记 (累计阅读 11,562)
    4. 谷歌(Google)2011年校园招聘笔试题 (累计阅读 9,574)
    5. 最常被程序员们谎称读过的计算机书籍 (累计阅读 9,156)
    6. 再谈“我是怎么招聘程序员的” (累计阅读 8,792)
    7. 如何在面试中发现优秀程序员 (累计阅读 8,314)
    8. Java程序员应该知道的10个eclipse调试技巧 (累计阅读 8,011)
    9. 从C语言的Hello World说起 (累计阅读 7,642)
    10. IBM面试记 (累计阅读 7,385)