有1到100号的灯,一开始全部点亮。每盏灯都有独立的开关,且开关只有“开”和“关”两种状态。
第一次把所有1的倍数灯的开关按一次,第二次把所有2的倍数灯的开关按一下,一直到第一百次把所有100的倍数灯的开关按一下。
问,此时还有多少灯灭着?

一、Java编程解决

package test;import java.util.ArrayList;
import java.util.List;public class lamp1_100 {public static void main(String[] args){int count=0;List<Integer> dd = new ArrayList<Integer>();
//  默认所有的灯开着for(int i=0;i<100;i++){dd.add(1);}
//      操作所有的灯for(int k=1;k<=100;k++){//对k的倍数的灯进行操作如果是关设置成开 如果是开设置成关for(int t=1;t<=100/k;t++){if(dd.get((k*t)-1)==0){dd.set((k*t)-1,1);}else{dd.set((k*t)-1,0);}}}
//  计算灭灯的灯的个数for(int i=0;i<100;i++){if(dd.get(i)==0){count++;System.out.println("剩余灭的灯的索引:"+ i);}}System.out.println("剩余灭的灯的个数:"+count);}}

二、python字典解决

灯泡有两种状态:开和关,用 -1代表关,用1代表开。每次操作后,状态上乘以-1。
on ---> 1     off ---> -1dic = {k:1 for k in range(1,101)}def lanm(n):for i in range(1,n+1):for x in dic:if x%i == 0:dic[x] = int(dic[x])*-1return dicnum = len({k: v for k,v in lanm(100).items() if v == 1})
print(f"There are {num} lights on.")#There are 10 lights on.

三、python列表

lamp = []
#默认100盏灯都是开的
for i in range(100):lamp.append(1)
#循环100个灯
for k in range(1,101):i = 0
#对k的倍数的灯进行开关操作while i <= 100/k:if lamp[(i*k)-1] == 0:lamp[(i * k) - 1] = 1else:lamp[(i*k)-1]=0i += 1
#count = len([i for i in lamp if i==0])
count = 0
for i in range(0,100):if lamp[i] == 0:count +=1print(f"灭灯的位置{i+1}")
print(f"灭灯的数量{count}")

1到100号的灯开关问题相关推荐

  1. 屋子里有1到100号100盏关闭的灯

    屋子里有1到100号100盏关闭的灯,门外有1到100号100个人,每个人都要进屋一次,把与自己序号对应的和是自己序号倍数的灯绳拉一下,(比如1号要拉所有的灯绳,2号要拉2,4,6的灯绳,而100号只 ...

  2. 为什么熊掌号没有了_为什么人类总吃食草动物,很少吃食肉动物?

    别看大自然一天不管不顾,悠悠哉哉,偶尔发个火,但其实地球上各个物种都潜移默化地被它安排的明明白白的.即使是高端智慧物种也要乖乖遵守,否则作茧自缚. 只要在地球上生存,我们就不能以孤立的个体存在,而是大 ...

  3. # CSP 201609-2 火车购票购买(100分)

    试题编号: 201612-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20 ...

  4. 编写一个程序,从10亿个数字的数组中找出100个最大的数字

    本文翻译自:Write a program to find 100 largest numbers out of an array of 1 billion numbers I recently at ...

  5. CCF201609-2 火车购票(100分)

    试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一 ...

  6. CCF CSP 201609-2 火车购票(C++语言100分)[简单模拟题]

    1. 问题链接:CCF 201609-2 火车购票 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的 ...

  7. CCF CSP 201609-2 火车购票 C++实现 100分

    问题描述 请实现一个铁路购票系统的简单座位分配算法,来处理一节车厢的座位分配. 假设一节车厢有20排.每一排5个座位.为方便起见,我们用1到100来给所有的座位编号,第一排是1到5号,第二排是6到10 ...

  8. 看顶级渣男如何邀约100个女朋友(一)

    文章目录 一.前言 二.远程调用的基础,RestTemplate封装Http请求 三.Ribbon负载均衡的使用 3.1 Ribbon负载均衡的原理 3.2 Ribbon负载均衡的实现 四.Ribbo ...

  9. 看顶级渣男如何邀约100个女朋友(二)

    文章目录 一.前言 二.从getForObject()是如何进入LoadBalanceInterceptor.intercept()方法的 三.获得服务列表,间隔更新服务列表,将服务列表存储在内存变量 ...

  10. linux 用户加入次要群组,linux学习笔记之 帐号和群组管理

    /etc/passwd    用户名:用户密码:UID:GID:说明:家目录:使用的shell 1. 账号名称: 就是账号啦!用来对应 UID 的.例如 root 的 UID 对应就是 0 (第三字段 ...

最新文章

  1. 独家 | creditR 的基于实践的导论:一个神奇的改良信用风险评分和验证的R包(附代码)...
  2. 《JAVA练习题目4》 训练要点:String和StringTokenizer的使用,以及排序算法。
  3. android数据库三个方法有哪些,一个三年Android开发的总结 - 常见数据库问题总结...
  4. 带参数的过滤器|| 过滤器案例:格式化日期|| time.js  ||
  5. Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]
  6. Qt工作笔记-使用qrand与QTime产生随机数
  7. springboot 后台模板_spring boot实战
  8. Linux使用awk命令获取某一行或某一列
  9. 【读书笔记《Android游戏编程之从零开始》】7.Android 游戏开发常用的系统控件(Dialog)
  10. 软件工程之软件维护与再工程
  11. java同步锁-详细易懂
  12. WSO2流处理器相关学习(1)快速入门指南【转】
  13. 邓白氏编码申请经验分享
  14. 生物特征认证和识别市场现状及未来发展趋势
  15. python3 打点计时
  16. 新浪邮箱开通imap服务器,新浪帮助-常见问题
  17. Unity 图片滑动
  18. 收到大量垃圾短信怎么办?如何屏蔽垃圾短信?
  19. 树莓派3B 安装 Raspbian 系统,配置环境
  20. 【ESP32 开发】ArduinoJson联合PSRAM解决 ESP32内存过小 无限重启的问题

热门文章

  1. Mongodb安装教程
  2. linux 进程 cmd su,linux下常用管理命令
  3. 在Google Chrome WebRTC中分层蛋糕式的VP9 SVC
  4. python 安装Cython
  5. 在网页中使用嵌入字体
  6. Python入门——文件读写
  7. CSDN无法上传资源解决方法
  8. 实习之路0--设计模式之策略模式的理解(鸭子类例子)
  9. 做了个小程序,拿到天使轮投资了!
  10. otdr全部曲线图带解说_【赛事主播】你最期望哪个电竞选手组合来解说比赛?...