数组和字符串中的开灯问题

算法竞赛入门经典(第2版)紫书 第三章数组和字符串 例题 文章目录开灯问题 开灯问题 有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入n和k,输出开着的灯的编号。k≤n≤1000。 样例输入 7 3 样例输出 1 5 6 7 ... 阅读详情

现在随着深入,知识越来越难,好多无法理解,只能自己翻书查阅,不过这也是必须的。

代码那么好懂就不叫代码了。

以下为开灯问题:有n盏灯,编号为1~n。第一个人把所有灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第三个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),以此类推。一共有k人,问最后有哪些灯开着?

#include<stdio.h>
#include<string.h>
#define maxn 1010
int a[maxn];
int main()
{
    int n,k,first=1;
    memset(a,0,sizeof(a));
    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;
}
验证:
当n=7,k=3时,1,5,6,7这四盏灯开着。

当n=11,k=9时,1,4,9,10,11这四盏灯开着。

好吧,虽然这条路很困难,很枯燥,但既然选择,就必须坚持到底!

C语言数组和字符串练习 Problem A:【二维数组】计算三阶行列式的值 题目描述 输入 输入三阶行列式,共三行三列,每个元素整数值,取值介于[-100,100] 输出 三阶行列式的值 样例输入 1 2 3 0 4 5 0 0 6 样例输出 24 答案 #include <stdio.h> int main(){ int i,a[3][3],j,sum1,sum2,sum; for(i=0... 阅读详情

相关推荐

算法入门之开灯问题

有n盏灯,编号为1~n.第一个人把所有的灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3 的倍数的开关(开着的灯关掉,关着的灯被打开),以此类推,一共有k个人,问最后有哪些灯开着?

第五章 数 组-1109:开关灯

1109:开关灯 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 28934 通过数: 13435 【题目描述】 假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。 第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为...

zqhf123的博客 1344

Docker Desktop重装避坑:从卸载到安装的完整流程(Win10/Win11适用)

本文详细介绍了在Windows 10/11系统上彻底卸载和重新安装Docker Desktop的完整流程,包括深度清理残留文件、注册表项和虚拟磁盘,以及安装前的环境准备和安装后的验证步骤,帮助用户避免常见问题并优化Docker环境配置。

julia4scientist的博客 1107

【数组】灯泡开关 Ⅱ

这道题直接按照这个代码实现,执行时会超时;说明这道题不能按照暴力方法来解决,那么可以通过分析规律来解决;这里我暂时不提供解决方案,欢迎回复更简洁、高效的思路。

weiliuhong1的专栏 360

多思计算机组成原理实验:模型机课程设计

计算机组成原理实验教程 基于多思网络虚拟实验系统 张雯雰

Nick的博客 2万+

LEF文件介绍及其生成

介绍LEF文件及其生成方法

weixin_43249158的博客 3万+

开灯问题

有n盏灯,编号1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依次类推。一共有k个人,问最后有哪些灯开着?  Input n和k,1≤k≤n≤1000。  Output 输出开着的灯编号。  Sample Input 7 3 Sample Output 1 5 6 

u013177799的博客 366

BH1750光强度传感器Stm32f103驱动(已测试ok)

1. 实验:Stm32f103 驱动 bh1750采集光照强度,串口打印采集到的数据。 2. 实验准备器材 开发版:stm32f103c8t6 器件:bh1750 GY-302 开发环境:win10,KILE4 下载程序的软件:FlyMcu.exe 串口调试助手:ComAssistant.exe 3. BH1750 的接线 VCC:5V或3.3V ...

weixin_53329977的博客 8928

例题:开灯问题

有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依次类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的等的编号。k<=n<=1000。 样例输入:7 3 样例输出:1 5 6 7分析:用a[1],a[2]…a[n]表示编号为1~n的灯是否开着。模拟这

Ethan的博客 2007

【DaVinci Configurator专题】-5-通过Data Mapping自动创建CAN信号关联的Port并添加到APP SWC

目录 1 导入CAN Matrix变更后的Arxml文件 2 自动创建CAN信号关联的APP Port 3 CAN信号与App SWC的接口映射/连接 4 结尾 <--返回「实战篇」博文-总目录--> <--返回「Autosar从入门到精通-实战篇」专栏主页--> 关键词: DaVinci Developer DaVinci Configurator Pro ARXML AUTOSAR System Description Network Explorer 1

「汽车电子助手」的博客 5129

【YOLOv11】从零搭建基于YOLOv11深度学习算法的农作物虫害检测系统(附带环境搭建+完整代码+讲解)

《基于YOLOv11的农作物病虫害智能检测系统》项目摘要 本项目开发了一个基于YOLOv11深度学习算法的农作物病虫害检测系统,支持玉米、水稻、草莓和西红柿等四大类经济作物的30多种病虫害识别。系统采用多模态检测方式,支持图片、视频和实时摄像头输入,并集成了完整的Web应用框架。 技术架构上,系统以PyTorch实现YOLOv11算法为核心,结合Flask搭建深度学习服务,SpringBoot构建业务后端,Vue3+TypeScript开发前端界面,MySQL数据库存储检测数据。系统具备用户权限管理功能,支

AnChenliang_1002的博客 812

开灯问题——数组

题目:有n盏灯,编号为1-n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入n和k,输出开着的灯的编号。k<=n<=1000. #include<stdio.h> #include<string.h> #define maxn 1001 int main(){ int a[maxn]={0}; int

zy的博客 406

YOLOv11改进,YOLOv11引入B2CNet的BFAM(双时相特征聚合模块),JSTARS 2024,二次创新C3k2结构

YOLOv11改进,YOLOv11引入B2CNet的BFAM(双时相特征聚合模块),JSTARS 2024,二次创新C3k2结构

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 406

c语言 开灯问题,刘汝佳紫书[数组和字符串]内容总结

本篇文章是笔者对紫书第3章--数组和字符串内容的一个整理,主要是基于问题的整理,总结并理顺了一下思路。不得不说,这些题解真的是太巧妙了????1.数组开灯问题#include#include#define maxn 1007using namespace std;int main(){int arr[maxn],n,k;memset(arr,-1,maxn);//将该数组的元素全部初始化为-1cin&g...

weixin_39580748的博客 457

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

算法竞赛入门经典: 第三章 数组和字符串 3.2开灯问题

/* 开灯问题: 有n盏等,编号为1~n。第一个人把所有灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第三个人按下所有编号为3的倍数的开关(其中关掉的灯) 将被打开,开着的灯将被关闭,依此类推。一共有k个人,问最后有哪些灯开着?输入:n和k,输出开着的灯编号。k<=n<=1000 输入:7 3 输出:1 5 67 */ //思路:决定一个灯开着,奇数次开,这个数

qingyuanluofeng的专栏 660

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

第3章 数组和字符串

第2章的程序很实用,也发挥出了计算机的计算优势,但没有发挥出计算机的存储优势 ——我们只用了屈指可数的变量。尽管有的程序也处理了大量的数据,但这些数据都只 是“过客”,只参与了计算,并没有被保存下来。 本章介绍数组和字符串,二者都能保存大量的数据。字符串是一种数组(字符数组), 但由于其应用的特殊性,适用一些特别的处理方式。 3.1 数组 程序3-1 逆序输出 考虑这样一个问题:读入一些整数,...

twelvecoder 218

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

算法竞赛入门经典_3.1_数组_逆序输出_开灯问题

又是新的一天,继续更新. 今天进入了新的章节,数组和字符串 1.逆序输出问题: 先来看代码吧 #include <stdio.h> //逆序输出 2017-8-16 #define maxn 105 int a[maxn]; int main(int argc, char* argv[]) { //int a[maxn]; int x, n =...

weixin_30670151的博客 205

算法学习之数组和字符串

数组和字符串 逆序输出考虑问题:读入一些整数,逆序输出到一行中。已知整数不超过100个。 我们把每个数都存下来,存放到哪里呢?答案是:数组。 #include <conio.h> #include<stdio.h> #define MAXN 100+10 int a[MAXN]; int main(){ int i,x...

weixin_34281537的博客 77

[算法竞赛入门]第三章_ 数组和字符串

第3章 数组和字符串 【学习内容相关章节】 3.1数组 3.2字符数组 3.3最长回文子串 3.4小结与习题 【学习目标】 (1)掌握一维数组的声明和使用方法; (2)掌握二维数组的声明和使用方法; (3)掌握字符串的声明、赋值、比较和连接方法; (4)熟悉字符的ASCII码和ctype.h; (5)正确认识++、+=等能修改变...

weixin_30443895的博客 610

第03章_数组和字符串

第03章_数组和字符串 Example_0301_逆序输出_数组.cpp Example_0302_开灯问题.cpp Example_0303_蛇形填数.cpp Example_0304_竖式问题.cpp Example_0305_最长回文子串_预处理方法.cpp Exercise_0301_分数统计(stat)_vector_pair.cpp Exercise_0302_单词的长度

Neicole ~~ 学习旅程(大学) 2858

第3章 数组与字符串

3.1 数组 程序3.1 逆序输出(读入一些整数,不超过100个,逆序输出到一行中) #include #define maxn 105 //常常难以精确计算出需要的数组大小,数组一般会比声明的稍大一点,会更保险 int buf[maxn]; //因为局部变量存放在堆栈段中,若放在函数体内可能会导致栈溢出,一般在全局部分声明较大的数组 int main() { int x, n

qibofang的博客 684

《算法竞赛入门经典》读书笔记 第3章 数组和字符串

运行环境:Visual Studio2019 目录第3章 数组和字符串 第3章 数组和字符串

weixin_43826681的博客 464

算法竞赛入门经典 第三章的几个问题

第三章讲的主要是数组和字符串的一些遍历和枚举技巧。 包括开灯问题,蛇形填数问题,竖式问题和最长回文子串,四个。 1. 开灯问题 package tessst; import java.util.Arrays; import java.util.Scanner; pu...

183

3.数组和字符串

数组 逆序输出#include<stdio.h> #define maxn 1000000 int a[maxn]; int main() { int x, n=0; // 输入 while(scanf("%d", &x) == 1) a[n++] = x; // 输出 for(int i=n-1; i>=1; i--){ pri...

weixin_41324527的博客 230
上一篇: 算法竞赛中的输入输出框架
代码萌新
博客等级 码龄10年 1粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值