【面试题】-100盏灯
一道挺有意思的逻辑题
房间里有100盏电灯,编号为1,2,3……100,每盏灯上有一个按钮,初始时灯全都是关的。
编好号的100位同学由房间外依次走进去,将自己编号的倍数的灯的按钮全部按一次,例如第一位同学把编号是1的倍数的灯的按钮按一下(此时100盏灯全亮),第二位同学把编号是2的倍数的灯的按钮按一下(此时只有50盏灯亮着,50盏被这个人按灭了)……第100位同学把编号是100的倍数的灯(即编号为100的灯)的按钮按一下,请问依次走完后,还有多少盏灯亮着?
public static void HundredTest(){Dictionary<int, bool> dataBase = new Dictionary<int, bool>();for (int i = 1; i <= 100; i++){dataBase.Add(i, false);}for (int i3 = 1; i3 <= 100; i3++){for (int ii = 1; ii <= dataBase.Count; ii++){if (ii % i3 == 0){dataBase[ii] = dataBase[ii] == true ? false : true;}}}StringBuilder sb = new StringBuilder();foreach (var item in dataBase){if (item.Value == true){sb.Append(item.Key.ToString() + ",");}}Console.WriteLine(sb.ToString().Substring(0, sb.ToString().Length - 1));}
代码很好写完,但是这个题目蕴含的数学理论挺好玩的,以下是别人的思路写的
1.对于每盏灯,拉动的次数是奇数时,灯就是亮着的,拉动的次数是偶数时,灯就是关着的。
2.每盏灯拉动的次数与它的编号所含约数的个数有关,它的编号有几个约数,这盏灯就被拉动几次。
3.1——100这100个数中有哪几个数,约数的个数是奇数。我们知道一个数的约数都是成对出现的,只有完全平方数约数的个数才是奇数个。
转载于:https://www.cnblogs.com/lb12081116/p/4776254.html
【面试题】-100盏灯相关推荐
- 面试题-100盏灯问题
题目 一间屋子里有100盏灯排成一行,按从左至右的顺序编号1.2.3.4.5-99.100,每盏灯都有一个开关,开始全部都关着,现有100个学生,第1个学生把1的倍数的灯全部拉一下,第2个学生把2的倍 ...
- 面试题—100盏灯问题
问题描述:有100盏灯,编号依次为1,2,3.100,电灯全部关着.现在来了100个人,第一个人把所有的灯开关按下:第二个人隔一个灯按下(2,4,6-):第三个人每隔两个灯按下(3,6,9-).第10 ...
- 【面试题】100盏灯问题
有100盏灯,从1~100编上号,开始时所有的灯都是关着的,第一次,把所有编号是1的倍数的灯的开关状态改变一次:第二次,把所有编号是2的倍数的灯的开关状态改变一次:第三次,把所有编号是3的倍数的灯的开 ...
- JAVA大厅有100盏灯,100人100盏灯(详解)
题:一百盏灯排成一排,初始状态是亮的, 编号为 1-100,100个人编号1-100.每个人从1号灯开始逐次走过这100盏灯.每个人只拉他对应编号的倍数的灯,问最后亮着几盏灯? 这是一道很经典的笔试题 ...
- js:自动亮起100盏灯
1) 使用js在页面上显示100盏灯,并标记从1到100的编号 2) 页面加载后3秒,从编号是1的灯依次自动亮起. 3) 每过0.5秒亮下一盏灯(10分) 4) 所有灯亮起后, ...
- 五年级数学:100盏灯问题
题目: 一间屋子里有100盏灯排成一行,按从左到右的顺序编上号1.2.3.4.5--99.100,每盏灯都有一个开关,开始全都关着,把100个学生排在后面,第1个学生把1的倍数的灯全都拉一下,第2个同 ...
- JAVA大厅有100盏灯_由100盏灯想到的(一)
大厅里有100盏灯,每盏灯都编了号码,分别为1-100.每盏灯由一个开关来控制.(开关按一下,灯亮,再按一下灯灭.开关的编号与被控制的灯相同.)开始时,灯是全灭的.现在按照以下规则按动开关. 第一次, ...
- 大厅里有100盏灯,每盏灯都编了号码,分别为1-100。每盏灯由一个开关来控制。
小弟学识浅薄,欢迎各位评论指点,谢谢! <pre name="code" class="html">import java.io.BufferedR ...
- 大厅里有100盏灯,每盏灯都编了号码,分别为1-100。每盏灯由一个开关来控制
大厅里有100盏灯,每盏灯都编了号码,分别为1-100.每盏灯由一个开关来控制.(开关按一下,灯亮,再按一下灯灭.开关的编号与被控制的灯相同.)开始时,灯是全灭的.现在按照以下规则按动开关. 第一次, ...
最新文章
- HDU1531(差分约束+Bellman_ford)
- Python uuid 介绍
- 关于 SAP 电商云 Spartacus UI 访问 b2b site 的权限问题
- linux 删除提示没有那个文件或目录,rm 无法删除没有那个文件或目录
- 最大公约数的欧几里德[辗转相除]算法及其扩展
- 如何在自己开发的android应用中添加广告
- 技术员 Ghost Win10 x86 装机版/纯净版 201710
- JSP学科竞赛管理系统
- 功率放大器的性能指标
- 【spider06】Selenium
- 数据结构软件测试,资讯详情-java常见数据结构-柠檬班-自动化测试-软件测试培训-自学官网...
- 011 dilate(膨胀)、erode(腐蚀)
- STM32物联网项目-单极性步进电机28BYJ-48
- Beats:为 Filebeat 配置 inputs
- 关于anaconda的使用和Python库的安装、卸载
- 【神经网络】正向传播和反向传播(结合具体例子)
- 在解压缩某些文件时出现问题检查计算机上,解压缩超大文件时出现问题
- 多功能无线网络与物联网实验箱 OpenBox-Wireless
- Unity加载配置文件的几种方式
- Linux实战后50讲 幕布笔记