简单却又复杂的FizzBuzz面试编程问题

偶然看到一篇关于stackoverflow公司的面经中提到了一个有趣的面试编程问题,如题所述:FizzBuzz问题。原文引用如下:

     “在一些公平的考验之后,我发现那些因为代码而抓狂的人不是为了庞大的项目,而是在细小的地方就缠不休。所以我开始研究这些问题,收集这些编程人员的特点 和归结成一类问题,取名为“FizzBuzz 问题”。 FizzBuzz问题是一种英国学校学生经常玩的游戏。举个“FizzBuzz 问题”的例子:

写一个程序打印1到100这些数字。但是遇到数字为3的倍数的时候,打印“Fizz”替代数字,5的倍数用“Buzz”代替,既是3的倍数又是5的倍数打印“FizzBuzz”。

大部分优秀的程序员都应该能在纸上轻易地把这个程序写出来,也就几分钟的事情。但你想知道一个令人震惊的事实吗?多数计算机科学专业的毕业生不会做这道题。我还见过一个自称是高级程序员的人做这道题,他居然花了10~15分钟。

Dan Kegel在招聘初级程序员的时候,也经历了类似的事情:令人惊讶的是,有相当一部分的应聘者(包括那些获得计算机科学专业的硕士或博士学位的人),当他们被要求完成一个基本的编程任务时,他们都通不过,因此面试失败。举例来说,我曾经碰到过一些毕业生,他们居然回答不出"写一个从1数到10的循环"或者"在16进制里F后面的数是什么"之类的问题。如果务实一点,我在面试中也碰到过很多应聘者,他们不会用递归去解决一个实际的问题。但这些都是基本的技能。如果他们不会,只能说明他们很可能根本就没写过程序。

      乍看这个问题的时候感觉题目叙述很清楚啊,思路也很简单啊,比现在很多公司用的字符串逆序,字符串空格替换啥的简单多了啊,为什么还会如此火地作为一个面试编程题?自己动手写了个,1分钟搞定,没毛病。然后怀着疑问就去百度了下,还真有各种论坛博客等网站都在讨论怎么写。然后看了下那些不屑一顾的编程爱好者们贴出来的代码,看完大家的代码后,我的内心是崩溃的,终于知道为什么这也能作为程序员们的面试编程题目了

看到这里的你不妨也去写一写吧,说不定写的过程中也会发现联想起来很多有趣的事呢)。

写完代码后可移步我的博文中看具体的case分析: 简单却又复杂的FizzBuzz面试编程问题
#Java工程师##C++工程师##iOS工程师##安卓工程师##前端工程师##算法工程师#
全部评论
这有啥的,Google的工程师都还有不会链表反转的呢(隐约的印象,不知道到底是不是这题)
点赞 回复 分享
发布于 2017-03-07 16:17
仔细看了看,你博客最后的代码还是有点问题,具体的自己去看吧。
点赞 回复 分享
发布于 2017-03-06 15:23
原来波帅是写这个进百度的,哈哈
点赞 回复 分享
发布于 2017-03-06 14:18

相关推荐

04-25 18:13
五邑大学 Java
后来123321:大二两段实习太厉害了,我现在大二连面试都没有
点赞 评论 收藏
分享
程序员牛肉:主要是因为小厂的资金本来就很吃紧,所以更喜欢有实习经历的同学。来了就能上手。 而大厂因为钱多,实习生一天三四百的就不算事。所以愿意培养你,在面试的时候也就不在乎你有没有实习(除非是同级别大厂的实习。) 按照你的简历来看,同质化太严重了。项目也很烂大街。 要么换项目,要么考研。 你现在选择工作的话,前景不是很好了。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务