150盏亮着的电灯,各有一个拉线开关控制,编号为1~150 将编号为1~150倍数的灯,依次拉一下 问:拉完后亮着的灯数为几盏? 哪盏灯被拉的最多?
来源:互联网 发布:全国省市区县数据库 编辑:程序博客网 时间:2024/04/27 23:01
(以前写的东西,现在搬上来,现在变笨了,何解?/(ㄒoㄒ)/~~)
同学在朋友圈分享了一个问题,我试着写了下。
问题:
150盏亮着的电灯,各有一个拉线开关控制,编号为1~150
将编号为1~150倍数的灯,依次拉一下
问:拉完后亮着的灯数为几盏?
哪盏灯被拉的最多?”
第一种:
var lightBox = [];//初始化数组 偶数亮着,奇数熄灭for(var i = 0 ; i <= 150; i++){ lightBox[i] = 1; //都是1的倍数,所以是熄灭的}//开始拉灯for(var i = 2; i <= 150; i++){ for(var j = 2; j <= 150; j++){ if(j%i == 0){ lightBox[j] += 1; } }}var openNum = 0;var switchMaxIndex = 1;var switchMaxNum = lightBox[1];for(var i = 1; i <= 150; i++){ if(lightBox[i]%2 == 0){ openNum ++; } if(lightBox[i] > switchMaxNum){ switchMaxNum = lightBox[i]; //最大开灯次数 switchMaxIndex = i; //记录最大拉灯数的下标 }}console.log(lightBox);console.log("亮灯数为:",lightBox);console.log("拉的最多次的灯为:" + switchMaxIndex + "号;最大开灯次数为:" + switchMaxNum);//结果://亮灯数为: 138//拉的最多次的灯为:120号;最大开灯次数为:16
第二种
思路:算公约数的个数。
//求一个数的公约数的个数function countApproximate(num){ var count = 0; for(var i = 1; i <= (num/2); i ++){ if(num%i == 0){ //是因数 count ++; } } return count + 1; //加上它自己}//偶数点亮,奇数熄灭var lightBox = [];for(var i = 1; i <= 150; i++){ lightBox[i] = countApproximate(i); //拉灯次数}//console.log(lightBox);var openLightNum = 0;var openMaxNo = 1;var openMaxNum = lightBox[1];for(var i = 1; i <= 150; i++){ if(lightBox[i]%2 == 0){ openLightNum ++; } if(lightBox[i] > openMaxNum){ openMaxNum = lightBox[i]; openMaxNo = i; }}console.log("点亮的灯的个数为" + openLightNum);console.log(`被开最多次的是${openMaxNo}号盏灯。被拉了${openMaxNum}次`);//结果://点亮的灯的个数为138//被开最多次的是120号盏灯。被拉了16次
0 0
- 150盏亮着的电灯,各有一个拉线开关控制,编号为1~150 将编号为1~150倍数的灯,依次拉一下 问:拉完后亮着的灯数为几盏? 哪盏灯被拉的最多?
- 对一批编号为1~100,全部开关朝上(开)的灯进行以下操作:凡是1的倍数反方向拨一次开关;2的倍数反方向又拨一次开关;3的倍数反方向又拨一次开关……问:最后为关熄状态的灯的编号。
- 有一百盏灯,全部亮着并且从一到一百进行编号,对每盏灯做如下处理,如果该灯的编号能被1整除则拨一下开关,能被二整除再拨一下,以此类推,直到该灯的编号(不含编号本身)为至,问最后哪几盏灯亮着。
- 1997盏亮着的电灯,3的倍数的灯的拉一下;再将5的倍数的灯拉一下,最后有多少亮的灯
- 题目:对一批编号为1-100全部开关朝上(开)的灯进行以下操作:
- 设编号为1,2,… n的n个人围坐一圈,约定编号为k(1<=k<=n)的人从1开始报数,数到m 的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个
- 有17个人围成一圈(编号为0~16),从第0号的人开始从1报数,凡报到3的倍数的人离开圈子,然后再数下去,直到最后只剩下一个人为止。问此人原来的位置是多少号?
- 多条记录合并为一条,同时将连续的编号写成“起始编号-结束编号”的形式
- 统计选票 候选人有8人编号为1-8 约定0为统计结束的标志
- 数理统计——有1,2,3,......无穷个格子,你从1号格子出发,每次1/2概率向前跳一格,1/2概率向前跳两格,走到格子编号为4的倍数时结束,结束时期望走的步数为
- mt2503将编号为50的频道添加为默认CB
- n人围圈,报数为3退出,问最后一人的编号?
- 编号为 1 到 n 的 n 个元素,顺序的进入一个栈,则可能的出栈序列有多少种?[摘]
- 编号为 1 到 n 的 n 个元素,顺序的进入一个栈,则可能的出栈序列有多少种?
- 在1-50万的编号里摇号,输出前n个尾号为55和77的编号
- 用opencv将连续编号的图片保存为avi视频 【有问题,如果你看到,请指教~】
- 第十三周项目1--(3)数组中元素为3倍数的和下标为3倍数的数
- 有n枚硬币按照0到n-1对它们进行编号,其中编号为i的硬币面额为vi,两个人轮流从剩下硬币中取出一枚硬币归自己所有,但每次取硬币的时候只能取剩下的硬币中编号最小的硬币或者编号最大的硬币,在两个都采用最
- Oracle.DataAccess.dll 下载 dll之家
- Cookie工具类
- [leetcode]15. 3Sum
- AlertDialog显示错误 Unable to add window token null is not for an application
- XRecyclerView下拉刷新和上拉加载
- 150盏亮着的电灯,各有一个拉线开关控制,编号为1~150 将编号为1~150倍数的灯,依次拉一下 问:拉完后亮着的灯数为几盏? 哪盏灯被拉的最多?
- 使用shape属性在api15及api16 上出现黑背景的解决方案
- linux环境变量配置后报错..-bash: /usr/local/java/jdk1.7.0_55/bin/java: /lib/ld-linux.so.2: bad ELF interpreter
- 提交时间段订单判断是否重复
- Dao学习笔记
- 设计模式
- 2016年湖南省第十二届大学生计算机程序设计竞赛:F—地铁
- Android关于获取用户是否允许某项权限
- Springmvc前端JSON转换器MappingJackson2HttpMessageConverter设置对值为null的处理