设为首页 加入收藏

TOP

2016滴滴出行研发工程师笔试题(亮灯问题)
2017-02-08 08:16:50 】 浏览:9468
Tags:2016 滴滴 出行 研发 工程师 试题 问题

最近又想搞即时通讯又想搞网络框架,然而都没弄出来,不过每周面试题还是得照常继续的。


先来分析一下,因为一开始的时候 2015 盏灯都是熄灭的,按一次灯就开了, 按两次灯就熄灭了,由此可以知道只有按过奇数次的灯才可能是亮着的,题目中还有一个信息,就是把 1 的倍数的灯按一次,把 2 倍数的灯按一次,把 3 倍数的灯按一次,如此类推,这不就是求每个数的公约数吗?因此结合第一第二个条件,我们就可以把题目演化成求1-2015中有哪些数的公约数是奇数个的。如:1 , 4, 9 , 16….. (注:一个数的约数必然包括1及其本身) 这样算还是比较麻烦,我们可以继续把题目演化,求哪些数的公约数是奇数个其实也就是求哪些数是平方数,为什么呢?因为约数都是成对出现的,平方数是由两个相同的约数得到的,但是算个数是只算一个。偶数加奇数是奇数。所以只有平方数才有奇数个约数。最后,问题就变得很简单了,其实就是求1-2015中有多少个平方数,换个角度就是:44^2<2015<45^2,最后的答案就是 44 个,选 B


其实这道题也就是leetcode原题 【319. Bulb Switcher】,其实看看我以往发的面试题可以知道,大公司的面试题基本都是算法题,而且都是根据一些经典的算法题更改或原封不动地出的。


最后用 Java 来解一下,其实就是一句话的问题。


BlueSwitcher.png


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇搜狐2017实习生笔试题_概率问题 下一篇把二叉树打印成多行(二叉树的层次..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目