开灯问题

算法 简单的开灯问题 开灯问题 有从1到n依次编号的n个同学和n 盏灯。 1号同学将所有的灯都关掉; 2号同学将编号为2的倍数的 灯都打开; 3号同学则将编号为3的倍数的灯作相反处理 (该号灯如打开的,则关掉;如关闭的,则打开); 以 后的同学都将自己编号的倍数的灯,作相反处理。 问经n 个同学操作后,哪些灯是打开的? #include <stdio.h> main( ) { int n,a[100... 阅读详情

好久都没更新啦~

今天写一些吧~

题目描述:有n盏灯,编号为1~n。第一个人把所有灯都打开,第二个人按下所有的编号为2的倍数的开关(这些灯将都会被关掉),第三个人按下所有为3的倍数编号的开关(其中关掉的灯被打开,打开的灯被关掉),以此类推。一共有k个人,问最后有那些灯开着?输入n和k,输出开着的灯的编号。k≤n≤1000.

样例输入:

7 3

样例输出:

1 5 6 7

【分析】

用a[1],a[2],a[3],....,a[n]表示编号为1,2,3,...n的灯是否开着。模拟这些操作即可。

以下是C语言代码

#include<stdio.h>
#include<string.h>
#define maxn 1010  //定义一个容量为1010的名叫maxn的数组
int a[maxn]; 
int main()
{
   int n,k,first = 1;
   memset(a,0,sizeof(a));//把所有数组中的数赋值为0,memset在string.h中定义
   scanf("%d%d",&n,&k);
   for(int i=1;i<=k;i++)
     for(int j=1;j<=n;j++)
         if(j%i == 0)  a[j] = !a[j];
   for(int i = 1;i<=n;i++)
     if(a[i]){if(first)  first = 0; else  printf("  ");printf("%d",i);}
   printf("\n");
   return 0;
   
}

一下是样例输出图片截屏

其中 if(a【i】)执行if判断语句

如果a【i】 = 0;则为假

若a【i】= 1  则进入if子语句。

开关灯问题(python)实现 ''' 开灯问题: 有从1到n依次编号的n名同学和n盏灯。1号同学将所有的灯都关掉;2号同学将编号为2的倍数的灯都打开;3号同学则将编号为3的倍数的灯做相反的处理(该号灯如打开,则关掉;如关闭,则打开);以后的同学都将自己的编号倍数的灯,做相反处理,问经n个同学操作后,那些灯是打开的 问题分析: 1、前面已经学过用数组表示过个对象的某种状态,这里就定义有n个元素的a数组,他的每个下标变量a[i]视为一盏灯,i表示编号。a[i]=1表示第i盏灯处于打开状态,a[i]=0表示第i盏灯处于关于状. 阅读详情

相关推荐

【python练习题】开关电灯

有N个灯放在一起,从1到N依次顺序编号,有N个人也从1到N依次编号。1号将灯全部熄灭,2号将,凡是2的倍数的灯打开;3号将凡是3的倍数的灯作相反处理(该灯如为打开,则将他关闭;如果关闭,则将它打开)。以后的人都和3号一样,将凡是自己编号倍数的灯作相反处理。编程实现:第N个人操作后,按顺序输出等的状态(1表示灯打开,0表示灯熄灭)。 输入 输入:N(1<= N <= 2000000),灯的个数

c08762的博客 5262

开关灯问题(python)

当N=20时,输出的时1,4,9,16.相信大家已经找到规律了,输出的是n的平方。当N=10时,输出的是1,4,9.当N=5时,输出的是1,4。

2402_86350741的博客 876

P1876 开灯 python题解

python代码 M = int(input()) if M == 1 or M == 2: print("1") else: d = [1 for i in range(M)] i = 2 while i <= M: index = 0 while index < M: if (index+1) % i == 0: d[index] = -d[index] .

繁华三千东流水不舍昼夜的博客 986

开灯问题——基础

描述 有n盏灯,编号为1~n,第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯编号。k≤n≤1000 输入 输入一组数据:n 和 k 输出 输出开着的灯编号 样例输入 7 ...

qq_32003379的博客 567

C语言的开灯问题

C语言的开灯问题题目思路实现代码多括号版(简单明了)少括号版(好看装逼) 题目 N 盏灯排成一排,从 1 到 N 依次编号。有 N 个人也从 1 到 N 依次编号。第一个人(1 号)将灯全部打开,第二个人(2 号)将凡是 2 和 2 的倍数的灯关闭。第三个人(3号)将凡是 3 和 3 的倍数的灯做相反处理(即将打开的灯关闭,关闭的灯打开),以后的人都和 3 号一样,将凡是与自己编号相同的灯和是自己编号倍数的灯做相反处理,请问当第 N个人操作之后,哪几盏灯是点亮的?试编程求解这个问题, N 由键盘输入。 思路

GHost_7的博客 6259

Zemax热分析实战:5分钟搞定双胶合透镜温度漂移优化(附操作数详解)

本文详细解析了使用Zemax进行光学系统热分析的全流程,以双胶合透镜为例,重点阐述了如何通过多重结构编辑器模拟温度变化,并利用关键操作数优化系统以抵抗温度漂移。文章提供了从基础设置到高级优化的实战技巧,帮助工程师快速掌握无热化设计方法,确保系统在宽温范围内保持稳定成像性能。

n4o5p6q7r的博客 396

[C++] 开灯问题(两个思路)

[C++] 开灯问题 题目 有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入n和k,输出开着的灯的编号。k≤n≤1000。 样例输入: 7 3 样例输出: 1 5 6 7 分析 创建一个a[n]数组,开灯全置1,后每次...

Cedric_6的博客 1万+

Verilog十大基本功2(testbench的设计 文件读取和写入操作 源代码)

需求说明:Verilog设计基础 内容       :testbench的设计 读取文件 写入文件 来自       :时间的诗 十大基本功之 testbench 1. 激励的产生 对于 testbench 而言,端口应当和被测试的 module 一一对应。 端口分为 input,output 和 inout 类型产生激励信号的时候, input  对

时间的诗 5万+

开灯问题C++版

开灯问题 有n盏灯,编号为1~n。第一个人把所有灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第三个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关掉),以此类推。一共有k个人,问最后有那些灯开着?输入:n和k,输出开着灯的编号。k&lt;=n&lt;=1000。       样例输入:7 3       样例输出:1 5 6 7 #include&...

sinat_35793960的博客 8719

2026 最新实战教程:AI 重构开发全流程(从需求→上线→运维)

1)做什么系统2)技术栈3)功能模块4)部署要求plaintext我要做一个:待办事项(Todo)全栈应用技术栈:前端:React + TypeScript + Tailwind后端:Node.js + Express + MongoDB部署:Docker + 本地运行(后续可上云)功能:- 增删改查任务- 任务状态切换(完成/未完成)- 简单错误处理请按企业级标准生成:架构设计 + 全部代码 + 接口文档 + 启动命令。

qq_35779316的博客 1684

深度学习实战12(进阶版)-利用Dewarp实现文本扭曲矫正

大家好,我是微学A1, 我们在生活中会看到一些拍摄扭曲的图片,我们在通过OCR识别的时候,因为扭曲的厉害,而无法识别,我们需要对图片进行处理。

微学AI的博客 3156
上一篇: 1.5.3 习题
下一篇: 【ACM】蛇形填数
叫我Python小朋友
博客等级 码龄6年 128粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值