51. 某公司的面试题:100个人去按100个灯,每个人只能按它顺序的倍数的灯
2014-09-05 22:19
543 查看
题目:100个灯开始都是关着,现在有100个人去按100个灯,每个人只能按它顺序的倍数的灯,
比如:100个人的顺序编号为1,2,3,。。。
1 只能按1的倍数的灯,所有的灯都按一遍
2只能按2的倍数的灯,既2,4,6,8,。。。
3只能按3的倍数的灯,既3,6,9,。。。
。。。
所有人都按完,哪些灯是关着的,哪些是开着?
分析:
这题如果按照计算机的思维,可以遍历一遍,所有100个人都按一遍灯,最后把灯的状态是关着的找出来。
而这题不是考你怎么实现它,是考你分析逻辑能力。
一个灯,哪些人会按,按的人的倍数都是等于这个灯的序号,人的个数为奇数,那么这个灯就是开着的,偶数则是关着的。
比如灯的序号为6,哪些人会按:1,2,3,6
灯的序号为4,哪些人会按:1,2,4
灯的序号为5, 哪些人会按:1,5
灯的序号为9,哪些人会按:1,3,9
可以看到一个规律:如果这个数为完全平方数,那么就有奇数个数的倍数为这个数,否则有偶数个数。
那么这题主要是判断这个数是不是完全平方数,是则有奇数个人按,是开着,反之是关的。
比如:100个人的顺序编号为1,2,3,。。。
1 只能按1的倍数的灯,所有的灯都按一遍
2只能按2的倍数的灯,既2,4,6,8,。。。
3只能按3的倍数的灯,既3,6,9,。。。
。。。
所有人都按完,哪些灯是关着的,哪些是开着?
分析:
这题如果按照计算机的思维,可以遍历一遍,所有100个人都按一遍灯,最后把灯的状态是关着的找出来。
而这题不是考你怎么实现它,是考你分析逻辑能力。
一个灯,哪些人会按,按的人的倍数都是等于这个灯的序号,人的个数为奇数,那么这个灯就是开着的,偶数则是关着的。
比如灯的序号为6,哪些人会按:1,2,3,6
灯的序号为4,哪些人会按:1,2,4
灯的序号为5, 哪些人会按:1,5
灯的序号为9,哪些人会按:1,3,9
可以看到一个规律:如果这个数为完全平方数,那么就有奇数个数的倍数为这个数,否则有偶数个数。
那么这题主要是判断这个数是不是完全平方数,是则有奇数个人按,是开着,反之是关的。
相关文章推荐
- 面试题:100个小朋友围在一起,设定编号为1~100,依次按1,2,3,4,5,6,7,8,9循环报数,报到9的小朋友出圈,请写代码打印各个小朋友的出圈顺序?(Python实现)
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次通过山洞的人名
- 面试题:有20个人围成一圈,顺序排号。从第一个人开始报数(从1到3报 数),凡报到3的人退出圈子
- 程序员面试题100题第29题——调整数组顺序使奇数位于偶数前面
- 14. 微软面试题:输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。
- 面试题2 需要获取1-100共100个整形数,并将这些数无序的存入数组中,写出你的算法。
- 金山面试题--四个线程a,b,c,d. 线程a,b对变量i加一. 线程c,d对变量i减去一.四个线程顺序执行, 每个线程每次只执行一次.i的初始值为0, 打印结果0 1 2 1 0 1 2 1 0 1
- 程序员面试题精选100题(51)-顺时针打印矩阵
- 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面
- 知乎问题"房间里100个人,每人1000元,他们玩一个游戏,每轮游戏中,每个人拿出1元,随机给另一个人,最后他们的财富分布是怎样的"实践解答
- 程序员面试题100题第07题——翻转句子中单词的顺序
- 一道面试题,100个人围成一个圈,然后报数。
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。
- 面试题:将一个字符串数组中的字母按照以下规则排列:表中任何单词的首字母与其前面单词的尾字母相同! 要求:字符串只由小写字母构成,且每个字符串长度在2-100之间
- 有三个线程名字分别是A、B、C,每个线程只能打印自己的名字,在屏幕上顺序打印 ABC,打印10次。
- Google多线程面试题: 4个线程向4个文件里写入数据, 每个线程只能写一个值
- Google多线程面试题: 4个线程向4个文件里写入数据, 每个线程只能写一个值
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次
- 编写多线程程序,模拟多个人通过一个山洞。这个山洞每次只能通过一个人,每个人通过山洞的时间为2秒(sleep)。随机生成10个人,都要通过此山洞,用随机值对应的字符串表示人名,打印输出每次通过山洞的人名
- Google多线程面试题: 4个线程向4个文件里写入数据, 每个线程只能写一个值(待更新)