偶然间在网上看到几个原来没见过的面试智力题,有几个题目在国内流传相当广,什么n个人怎么分饼最公平,屋里的三个灯泡分别由哪个开关控制,三架飞机环游世界,用火柴和两根绳子测量45分钟之类的题目,火星得已经可以考古了,这里就不再说了。
1、考虑一个双人游戏。游戏在一个圆桌上进行。每个游戏者都有足够多的硬币。他们需要在桌子上轮流放置硬币,每次必需且只能放置一枚硬币,要求硬币完全置于桌面内(不能有一部分悬在桌子外面),并且不能与原来放过的硬币重叠。谁没有地方放置新的硬币,谁就输了。游戏的先行者还是后行者有必胜策略?这种策略是什么?
答案:先行者在桌子中心放置一枚硬币,以后的硬币总是放在与后行者刚才放的地方相对称的位置。这样,只要后行者能放,先行者一定也有地方放。先行者必胜。
2、 用线性时间和常数附加空间将一篇文章的单词(不是字符)倒序。
答案:先将整篇文章的所有字符逆序(从两头起不断交换位置相对称的字符);然后用同样的办法将每个单词内部的字符逆序。这样,整篇文章的单词顺序颠倒了,但单词本身又被转回来了。
3、 用线性时间和常数附加空间将一个长度为n的字符串向左循环移动m位(例如,"abcdefg"移动3位就变成了"defgabc")。
答案:把字符串切成长为m和n-m的两半。将这两个部分分别逆序,再对整个字符串逆序。
4、一个矩形蛋糕,蛋糕内部有一块矩形的空洞。只用一刀,如何将蛋糕切成大小相等的两块?
答案:注意到平分矩形面积的线都经过矩形的中心。过大矩形和空心矩形各自的中心画一条线,这条线显然把两个矩形都分成了一半,它们的差当然也是相等的。
5、 一块矩形的巧克力,初始时由N x M个小块组成。每一次你只能把一块巧克力掰成两个小矩形。最少需要几次才能把它们掰成N x M块1x1的小巧克力?
答案:N x M - 1次显然足够了。这个数目也是必需的,因为每掰一次后当前巧克力的块数只能增加一,把巧克力分成N x M块当然需要至少掰N x M - 1次。
6、如何快速找出一个32位整数的二进制表达里有多少个"1"?用关于"1"的个数的线性时间?
答案1(关于数字位数线性):for(n=0; b; b >>= 1) if (b & 1) n++;
答案2(关于"1"的个数线性):for(n=0; b; n++) b &= b-1;
7、 一个大小为N的数组,所有数都是不超过N-1的正整数。用O(N)的时间找出重复的那个数(假设只有一个)。一个大小为N的数组,所有数都是不超过N+1的正整数。用O(N)的时间找出没有出现过的那个数(假设只有一个)。
答案:计算数组中的所有数的和,再计算出从1到N-1的所有数的和,两者之差即为重复的那个数。计算数组中的所有数的和,再计算出从1到N+1的所有数的和,两者之差即为缺少的那个数。
8、 给出一行C语言表达式,判断给定的整数是否是一个2的幂。
答案:(b & (b-1)) == 0
9、地球上有多少个点,使得从该点出发向南走一英里,向东走一英里,再向北走一英里之后恰好回到了起点?
答案:“北极点”是一个传统的答案,其实这个问题还有其它的答案。事实上,满足要求的点有无穷多个。所有距离南极点1 + 1/(2π)英里的地方都是满足要求的,向南走一英里后到达距离南极点1/(2π)的地方,向东走一英里后正好绕行纬度圈一周,再向北走原路返回到起点。事实上,这仍然不是满足要求的全部点。距离南极点1 + 1/(2kπ)的地方都是可以的,其中k可以是任意一个正整数。
分享到:
相关推荐
这些题目是程序员面试中常见的智力题,旨在考察应聘者的逻辑思维、问题解决能力和创新思维。以下是对这些题目涉及的知识点的详细分析: 1. **烧绳计时**:这是一个经典的逻辑题,要求在没有标准时间工具的情况下...
"程序员有趣的面试智力题" 这份文件提供了十一道有趣的面试智力题,并提供了解答。这些题目涵盖了算法、数学、逻辑和思维能力等方面。 1. 游戏策略问题:游戏者轮流放置硬币,先行者可以确保获胜的策略是什么? ...
.NET程序员面试智力题通常涉及到计算机科学基础、编程逻辑、算法分析、.NET框架理解以及问题解决能力等多个方面。以下是对这些知识点的详细说明: 1. 计算机科学基础:面试时,面试官可能会考察候选人的计算机基础...
程序员面试逻辑测试题内含答案.pdf 这是一份不错的文件,包含了75道程序员面试逻辑测试题,内含答案。该文件对应的标签为面试、文档资料、职场和发展、文档。 在这份文件中,我们可以找到许多有趣的逻辑测试题,...
java程序员高难度智力题,面试用! 值得学习。
在程序员的面试过程中,智力题往往被用来评估候选人的逻辑思维、问题解决能力和创新思维。这类题目通常不涉及具体的编程语言或技术细节,而是侧重于数学、逻辑推理和抽象思考。下面,我们就来深入探讨一下程序员面试...
2018java程序员面试宝典+题库,很全。压缩的文档,打开是PDF版
程序员面试智力题目大全,很全的啦,希望大家做出一百道哦
总结来说,C程序员语言面试中的100题不仅考察应聘者对C语言基础知识的掌握程度,更通过编程练习来考察应聘者的实际应用能力和问题解决能力。掌握这些知识点对于面试成功至关重要,也是程序员日常工作中不可或缺的...
java程序员早期面试题汇总 BAT经典面试题汇总.pdf Java常考面试题.pdf java面试题(题库全).doc java面试题-外企软件工程师面试题大全.rar 程序员面试题精选100题.pdf ... --------------------------------...
《程序员面试经典算法题》是针对程序员在面试过程中可能会遇到的算法问题进行深入解析的一份资源。这份资料旨在帮助程序员提升算法思维,从而在技术面试中脱颖而出。通过学习和掌握这些经典算法,不仅可以提高编程...
程序员智力题
1. 学习并掌握编程语言和技术的英文术语:书中会详细介绍Java、Python、C++等编程语言的关键概念和技术框架的英文表述,帮助程序员在面试中准确地表达自己的技术专长。 2. 理解软件开发流程的英文描述:从需求分析...
程序员C程序员语言面试100经典题
在Java程序员的面试过程中,掌握核心的编程概念、设计模式、多线程、集合框架、异常处理、IO流、网络编程、数据库操作等是至关重要的。以下是对这些关键知识点的详细解析: 1. **基础语法**:理解并能熟练运用Java...
Java程序员就业面试题大全Java程序员就业面试题大全Java程序员就业面试题大全Java程序员就业面试题大全Java程序员就业面试题大全Java程序员就业面试题大全
75道逻辑思考题 500强企业面试智力 java 程序员面试题经典集锦 程序员面试逻辑思维题 逻辑思维题训练 附答案 由数十家知名IT企业综合题 外企面试必备 逻辑题 程序员面试(Java Net 阿里等名企) 一共只收2分 因为...
收集了很多师兄师姐出去就业后,收集回来的企业面试.net程序员的面试题啊!不容易啊!1-8份面试题,好好看啊!都是技术题,祝面试上自己喜欢的职业
java面试题 程序员面试 逻辑题 笔试题
java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流...