滴滴出行2016研发工程师笔试题(亮灯问题)

2015盏灯,一开始全部熄灭,序号分别是1-2015,先把1的倍数序号的灯的开关全部按一次,然后把2的倍数的灯的开关全部按一次,然后把3的倍数的开关按一次,以此类推,最后把2015的倍数灯的开关按一次。问最后亮着的灯有多少盏?

  • 43
  • 44
  • 45
  • 46  

问题分析:

初始:全是灭的

1:全部亮

2:1,3,5 ,7,9,11,13。。。

3:1亮,6亮,12亮。

4:1,4,6,8。。。亮

----------------------------------

可以发现1是一直亮着的后面的倍数都是比1大,所以1点击一次后不再点击。

2和3号由于是两次点击不再亮。。

4号由于是3次点击亮

只有奇数次

可以断定最终奇数次点击的灯是亮着的,偶数次点击是关闭的。

题目转换:

1-2015 每个数能被多少个正整数整除,求可以被奇数个正整数整除的总数。

即哪些数有奇数个因子数。

继续看规律。

1:1  奇数个因子数

2:1,2

3:1,3

4:1,2,4 奇数个因子数

5:1,5

6:1,2,3,6

7:1,7

8:1,2,4,8

9:1,3,9  亮  奇数个因子数

。。。。。。

可以发现1,4,9,16,25。。才是亮的

即:1^2,2^2,3^2,4^2,5^2....

最终转换问题,求最大的一个数的平方不大于2015。

43*43=129+(172)*10  满足

44*44 = 176 +1760  满足

45*45 = 225+(1800) 超过

----------------

对于原始问题的编程

 1             TimeSpan ts = new TimeSpan();
 2             int count = 0;
 3             DateTime dt = DateTime.Now;
 4             for (int i = 1; i <= 2015; i++)
 5             {
 6                 int index = 1;
 7                 int click = 0;
 8
 9                 while (index <= i) {
10                     if (i % index == 0)
11                         click += 1;
12                     index += 1;
13                 }
14                 if (click % 2 != 0) {
15                     count += 1;
16                     Console.Write(i+" ");
17                 }
18             }
19             DateTime dt1 = DateTime.Now;
20             ts = dt1 - dt;
21             Console.Write("普通 Count:" + count +"耗时:"+ts);
22             Console.WriteLine("");
23             count = 0 ;
24             DateTime dt2 = DateTime.Now;
25             for (int i = 1; i <= 2015; i++)
26             {
27                 if (i * i <= 2015)
28                 {
29                     count += 1;
30                     Console.Write(i + " ");
31                 }
32                 else
33                 {
34                     break;
35                 }
36             }
37             DateTime dt3 = DateTime.Now;
38             ts = dt3 - dt2;
39             Console.Write("优化 Count:" + count + "耗时:" + ts);

这点数据量也是可以看出来还是有那么一些差距的

时间: 2024-10-10 09:33:20

滴滴出行2016研发工程师笔试题(亮灯问题)的相关文章

美团2016研发工程师笔试题(绑鞋带问题)

由A地到B地,中间有一段扶梯,总路程和扶梯长度是固定的,为赶时间全程都在行走(包含扶梯上),中途发现鞋带松了,需要停下来绑鞋带.请问在扶梯上绑鞋带和在路上绑鞋带两种方式比较(  ) 路上绑鞋带,全程用时短 扶梯上绑鞋带,全程用时短 用时一样 和扶梯长度,绑鞋带具体用时有关 答案是(2) 解答步骤:

阿里巴巴2016研发工程师笔试题

本题实则考察进制转换,可以设为x进制,但是x进制有一个问题,即我们无法对x进制直接进行加减乘除,故转化为我们常见的10进制. 78=7*x+8,123=1*x2+2*x+3:然后解方程即可.答案为13进制. 本题考察的是装箱与拆箱,==比较的是值,同样equals也是比较值.故选择true,true. equals源码如下: public boolean equals(Object obj) { if (obj instanceof Integer) { return value == ((In

搜狗2016研发工程师笔试题中有关于机器学习的几个判断题及解析

1.SVM对噪声(如来自其他分布的噪声样本)鲁棒       错 SVM(支持向量机)本身对噪声具有一定的鲁棒性,但实验证明,是当噪声率低于一定水平(如40%)时噪声对SVM没有太大影响,算法仍有效,但随着噪声率的不断增加,分类器的识别率会降低.http://www.docin.com/p-749158537.html 拓展:SVM在解决小样本.非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中. 在机器学习中,支持向量机(Support Vector Ma

腾讯2016研发工程师笔试题-36车 6跑道 没有计时器 最少要几次取前三

36辆自动赛车和6条跑道,在没有计时器的情况下,最少要几次取前三名. A.7 b.8 C.9 D.10 答:B.8次     解答: 先分6组 比赛6次,每组取前三 ,得 a1 b1 c1 d1 e1 f1 a2 b2 c2 d2 e2 f2 a3 b3 c3 d3 e3 f3 再每组第一名比一次 ,得 真·第一名 a1 以及 第二名  b1 第三名 c1 d e f 组第一名都上不了前三,所以去掉 d e f b3<b2<b1<a1,所以 b3 也不要了 c3 <c2< c

const的使用方法----腾讯2016研发工程师笔试题(一)

请找出下面程序中有哪些错误: int main() {    int i=10;    int j=1;    const int *p1;//(1)    int const *p2=&i; //(2)    p2=&j;//(3)    int *const p3=&i;//(4)    *p3=20;//(5)    *p2=30;//(6)    p3=&j;//(7) return 0; } 正确答案: C 1,2,3,4,5,6,7 1,3,5,6 6,7 3,

在ISO/OSI参考模型中,网络层的主要功能是()----百度2016研发工程师笔试题(六)

在ISO/OSI参考模型中,网络层的主要功能是() 正确答案: A   你的答案: A (正确) 路由选择,拥塞控制与网络互连 提供可靠的端一端服务,透明地传送报文 数据格式变换,数据加密与解密,数据压缩与恢复 在通信实体之间传送以帧为单位的数据 添加笔记 收藏 纠错 OSI ( Open System Interconnect ),即开放式系统互联. 一般都叫 OSI 参考模型,是 ISO (国际标准化组织)组织在 1985 年研究的网络互联模型.该体系结构标准定义了网络互连的七层框架(物理层

阿里巴巴2015研发工程师笔试题,带答案

欢迎对本文提出补充建议,可以在以下平台上我留言. 个人博客站点:www.anycodex.com/blog/ Csdn博客站点:http://my.csdn.net/?ref=toolbar 微博:http://weibo.com/1958069172/profile?topnav=1&wvr=5&user=1 1.int main(){ fork()||fork(); }共创建几个进程? 答:3个. [知识点] ? 一个现有进程可以调用fork函数创建一个新进程.由fork创建的新进程被

阿里2015在线研发工程师笔试题(部分)

今天lz去阿里的在线笔试打了一把酱油,由于lz的水平有限,时间太他么紧张了.下面把记下来的题给大家分享一下.选择题总共20道,前十题截了图,后面感觉太费时就没有再截了,凭记忆记下了两道.附加题都记录下来了. 选择题 第1题: 第2题: 第3题: 第4题 第5题: 第6题: 第7题: 第8题: 第9题: 第10题: 回忆起来的题(11-20中的某2道) 1.       一个博物馆,以每分钟20人的速度进入,平均每人待20分钟,问博物馆最少需要容纳多少人? A.100 B.200  C.300 

2015百度校招用户行为分析研发工程师笔试题

一,简答题(本题共30分) 1. 当前计算机系统一般会采用层次结构来存储数据,请介绍下典型的计算机存储系统一般分为哪几个层次,为什么采用分层存储数据能有效提高程序的执行效率?(10分) 所谓存储系统的层次结构,就是把各种不同存储容量.存取速度和价格的存储器按层次结构组成多层存储器,并通过管理软件和辅助硬件有机组合成统一的整体,使所 存放的程序和数据按层次分布在各种存储器中.目前,在计算机系统中通常采用三级层次结构来构成存储系统,主要由高速缓冲存储器Cache.主存储器和辅助 存储器组成.