“火柴棍式”程序员面试题
有时候,有些面试题是很是无厘头,这不,又有一个,还记得小时候玩的的“火柴棍游戏”吗,就是移动一根火柴棍改变一个图或字的游戏。程序面试居然也可以这么玩,看看下面这个火柴棍式的程序面试题吧。
下面是一个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个减号
- 通过修改、增加一个字符,让其不输出减号
(全文完)
(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)
《“火柴棍式”程序员面试题》的相关评论
求解
那个啥~
看答案
看看
看一下答案
呃,还得回复:(
投降看答案…
还要回复??
我来宣传我的博客地址
看看
我想看答案
-i < n或者 n–, 第三种一时半会想不出来
看看答案
总算都想出来了。。。
我去。。。坑爹啊。一个没想出来,结果居然都如此简单。
显然需要看看
显然需要看看这个问题的答案,有点意思
回复后显示….
呃,还得回复:(
看答案
真想看看
坑爹呢…
看一下答案
看下答案
好吧,我承认我坐不出来。。
瞅瞅吧
想的方案竟然被否了。
kan da an
好吧,我想看。。。
为了看一个答案还要回复呀
来看答案的
kankan
愚人节??
回复看看,到底有什么高深莫测的。
看看
先看看
看看答案
看看
看答案。。。
blog也有回复可见?
是不是还要靠溢出?
反反复复
我就是不回复,哼
看看
看看
ding yi xia ba
ffda f54323g
??正确是什么
= = 答案!