一道挺有意思的逻辑题

房间里有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盏灯相关推荐

  1. 面试题-100盏灯问题

    题目 一间屋子里有100盏灯排成一行,按从左至右的顺序编号1.2.3.4.5-99.100,每盏灯都有一个开关,开始全部都关着,现有100个学生,第1个学生把1的倍数的灯全部拉一下,第2个学生把2的倍 ...

  2. 面试题—100盏灯问题

    问题描述:有100盏灯,编号依次为1,2,3.100,电灯全部关着.现在来了100个人,第一个人把所有的灯开关按下:第二个人隔一个灯按下(2,4,6-):第三个人每隔两个灯按下(3,6,9-).第10 ...

  3. 【面试题】100盏灯问题

    有100盏灯,从1~100编上号,开始时所有的灯都是关着的,第一次,把所有编号是1的倍数的灯的开关状态改变一次:第二次,把所有编号是2的倍数的灯的开关状态改变一次:第三次,把所有编号是3的倍数的灯的开 ...

  4. JAVA大厅有100盏灯,100人100盏灯(详解)

    题:一百盏灯排成一排,初始状态是亮的, 编号为 1-100,100个人编号1-100.每个人从1号灯开始逐次走过这100盏灯.每个人只拉他对应编号的倍数的灯,问最后亮着几盏灯? 这是一道很经典的笔试题 ...

  5. js:自动亮起100盏灯

    1)    使用js在页面上显示100盏灯,并标记从1到100的编号 2)    页面加载后3秒,从编号是1的灯依次自动亮起. 3)    每过0.5秒亮下一盏灯(10分) 4)    所有灯亮起后, ...

  6. 五年级数学:100盏灯问题

    题目: 一间屋子里有100盏灯排成一行,按从左到右的顺序编上号1.2.3.4.5--99.100,每盏灯都有一个开关,开始全都关着,把100个学生排在后面,第1个学生把1的倍数的灯全都拉一下,第2个同 ...

  7. JAVA大厅有100盏灯_由100盏灯想到的(一)

    大厅里有100盏灯,每盏灯都编了号码,分别为1-100.每盏灯由一个开关来控制.(开关按一下,灯亮,再按一下灯灭.开关的编号与被控制的灯相同.)开始时,灯是全灭的.现在按照以下规则按动开关. 第一次, ...

  8. 大厅里有100盏灯,每盏灯都编了号码,分别为1-100。每盏灯由一个开关来控制。

    小弟学识浅薄,欢迎各位评论指点,谢谢! <pre name="code" class="html">import java.io.BufferedR ...

  9. 大厅里有100盏灯,每盏灯都编了号码,分别为1-100。每盏灯由一个开关来控制

    大厅里有100盏灯,每盏灯都编了号码,分别为1-100.每盏灯由一个开关来控制.(开关按一下,灯亮,再按一下灯灭.开关的编号与被控制的灯相同.)开始时,灯是全灭的.现在按照以下规则按动开关. 第一次, ...

最新文章

  1. HDU1531(差分约束+Bellman_ford)
  2. Python uuid 介绍
  3. 关于 SAP 电商云 Spartacus UI 访问 b2b site 的权限问题
  4. linux 删除提示没有那个文件或目录,rm 无法删除没有那个文件或目录
  5. 最大公约数的欧几里德[辗转相除]算法及其扩展
  6. 如何在自己开发的android应用中添加广告
  7. 技术员 Ghost Win10 x86 装机版/纯净版 201710
  8. JSP学科竞赛管理系统
  9. 功率放大器的性能指标
  10. 【spider06】Selenium
  11. 数据结构软件测试,资讯详情-java常见数据结构-柠檬班-自动化测试-软件测试培训-自学官网...
  12. 011 dilate(膨胀)、erode(腐蚀)
  13. STM32物联网项目-单极性步进电机28BYJ-48
  14. Beats:为 Filebeat 配置 inputs
  15. 关于anaconda的使用和Python库的安装、卸载
  16. 【神经网络】正向传播和反向传播(结合具体例子)
  17. 在解压缩某些文件时出现问题检查计算机上,解压缩超大文件时出现问题
  18. 多功能无线网络与物联网实验箱 OpenBox-Wireless
  19. Unity加载配置文件的几种方式
  20. Linux实战后50讲 幕布笔记

热门文章

  1. FPGA之FIFO详解,读写位宽不同
  2. java 多线程参数及说明
  3. fmod使用缓冲池之后,如何停止之前播放的声音
  4. 数据增强:随机擦除Random erasing
  5. asp 采集不到数据,采集不成功 拒绝访问 msxml3.dll 错误 '80070005' 的解决方法
  6. 靶机渗透练习49-KB-VULN
  7. Java成神之路技术整理,本文长期更新!
  8. 中文顿号怎么输入_键盘上顿号怎么打出来 顿号用键盘打出来的两种方法
  9. MYSQL - 查询今天、昨天、前天、本周、本月、本季度的数据
  10. 【傅老师DarkSouls第一季】02