“火柴棍式”程序员面试题
有时候,有些面试题是很是无厘头,这不,又有一个,还记得小时候玩的的“火柴棍游戏”吗,就是移动一根火柴棍改变一个图或字的游戏。程序面试居然也可以这么玩,看看下面这个火柴棍式的程序面试题吧。
下面是一个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 ,请勿用于任何商业用途)
《“火柴棍式”程序员面试题》的相关评论
ri
啊,最讨厌被强制了,不过还是看看,嘿嘿
看答案看答案……
看答案看答案……
答案。。。。。
看答案
回复一下,查看一下思路。。
看看是什么神奇的答案啊
回复一下,查看一下思路。。
真的能看答案吗XD
check
尊敬的楼主,我想到了一个,想看看你的其他方法。谢谢。
check the answers.
123
只想到两个
想看看提示
天啊,又吊人胃口
只想到两个
想看看提示
想看答案
tell me answer
LOOK
瞅瞅
看看。。。
真的有答案?
答案错了 看看正确的
看看思路是如何的
好吧,我要看看
好吧,我要看看
好吧,我要看看
好吧,我要看看
我要看答案
看看答案
答案错了 看看正确的
@qeqwe
看下答案
悲剧,看答案
我只想出了两个半答案, 不知道对不对。
第一个答案是: 把 for (int i = 0; i < n; i–) 这一行改成 for (int i = 0; -i < n; i–).
第二个答案是: 把 for (int i = 0; i < n; i–) 改成 for (int i = 0; i < n; n–).
最后半个答案是, 把"三个答案"改成"两个答案", 同样只修改了一个字节.
郁闷, 我就没想到’+’号, 我连 ‘!’ 和 ‘&’ 都考虑过了…
look
想出来两个,第三个会是什么?
我是来看答案的
看看答案
看看,
R TO C
不懂
水电费
check the 3rd one
我要看答案
都不对?
咋个想不到哎?