《算法竞赛入门经典》(刘汝佳) 有n盏灯,编号1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉), 第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依次类推。一共有k个人,问最后由哪些灯开着? 样例输入: 7 3 样例输出 1 5 6 7 分析:用a[1],a[2],a[3],...,a[n]表示编号为1,2,3,...,n的灯是否开着,模拟这些操作即可。1."memset(a,0,sizeof(a))"的作用是把数组清零,它也在string.h中定义。虽然也能用for循环完成相同的工作,但用memset又方便又快捷。#include <stdio.h> #include<stdio.h> #include<string.h> #define maxn 1010 int a[maxn]; int main(){ int n,k;//n盏灯,k个人 int first = 1;//第一个不用空格 scanf("%d%d",&n,&k); memset(a,0,sizeof(a)); for(int i = 1;i <= k;i++)//k个人,每人按下开关 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; }
2.为了避免输出多余的空格,设置了一个标志变量first,可以表示当前要输出的变量是否为第一个。第一个变量前不应该有空格,但其他变量都有
相关推荐
算法 简单的开灯问题
开灯问题 有从1到n依次编号的n个同学和n 盏灯。 1号同学将所有的灯都关掉; 2号同学将编号为2的倍数的 灯都打开; 3号同学则将编号为3的倍数的灯作相反处理 (该号灯如打开的,则关掉;如关闭的,则打开); 以 后的同学都将自己编号的倍数的灯,作相反处理。 问经n 个同学操作后,哪些灯是打开的? #include <stdio.h> main( ) { int n,a[100...
C语言基础应用实战:(详解实际问题以巩固C语言基础知识)——开灯问题:有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉)
1.开关问题的模拟:通过数组模拟每个灯的开关操作,可以清晰地理解问题的解决过程。2.标志量的使用:在输出时使用标志量控制格式,避免不必要的空格。3.效率分析:通过分析时间复杂度和空间复杂度,确认了该算法适用于题目中给出的范围。
C语言的开灯问题
C语言的开灯问题题目思路实现代码多括号版(简单明了)少括号版(好看装逼) 题目 N 盏灯排成一排,从 1 到 N 依次编号。有 N 个人也从 1 到 N 依次编号。第一个人(1 号)将灯全部打开,第二个人(2 号)将凡是 2 和 2 的倍数的灯关闭。第三个人(3号)将凡是 3 和 3 的倍数的灯做相反处理(即将打开的灯关闭,关闭的灯打开),以后的人都和 3 号一样,将凡是与自己编号相同的灯和是自己编号倍数的灯做相反处理,请问当第 N个人操作之后,哪几盏灯是点亮的?试编程求解这个问题, N 由键盘输入。 思路
【Python 百练成钢】灯光模拟
Python小技巧,对数组的灵活使用。
算法入门之开灯问题
有n盏灯,编号为1~n.第一个人把所有的灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3 的倍数的开关(开着的灯关掉,关着的灯被打开),以此类推,一共有k个人,问最后有哪些灯开着?
VSCode+ESP-IDF开发环境搭建:从零开始创建你的第一个物联网项目(2024最新版)
本文详细介绍了如何在2024年使用VSCode和ESP-IDF搭建物联网开发环境,从零开始创建第一个物联网项目。内容包括环境准备、ESP-IDF配置、项目创建与结构解析、构建烧录步骤以及高级技巧和常见问题解决方案,帮助开发者快速上手ESP32开发。
算法入门,开灯问题
题目: 有n盏灯,编号为1-n,第一个人把所有灯打开,第二个人按下所有编号两倍的开关(这些灯被关掉),第三个人按下所有编号三倍的开关,以此类推,一共有k个人,问最后有哪些灯开着? 输入:n和k,输出开着的灯的编号,k<=n<=1000 样例输入: 7 3 样例输出:1 5 6 7 思路: 由题目可以知道,原先所有灯都是关闭,第一个人是1的倍数,所以他操作1倍数的所有灯,然后让所有灯打开,依次2的倍数,3的倍数,我们发现灯的开关是对应相应的人数的倍数,所以我们采用两个for循环 .
手机流畅的秘密:拆解LPDDR5X在骁龙8 Gen2平台上的电源与信号完整性设计
本文深入解析了LPDDR5X内存与骁龙8 Gen2处理器在旗舰手机中的协同设计,重点探讨了0.5V超低电压下的电源完整性设计以及8.5Gbps高速传输中的信号完整性挑战。通过详细的电源树架构、关键器件选型和布线策略分析,揭示了如何实现高性能与低功耗的完美平衡,为手机流畅体验提供硬件保障。
[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,后每次...
保姆级教程:在华为云Ubuntu服务器上快速搭建RAGflow开发环境(避坑指南)
本文提供了一份在华为云Ubuntu服务器上快速搭建RAGflow开发环境的保姆级教程。针对网络拉取镜像等常见问题,详细介绍了从服务器选型、系统优化、Docker配置到RAGflow部署与验证的全流程,并给出生产环境调优建议,帮助开发者高效避坑,快速构建企业级应用环境。
Zabbix7.0实践:专线线路监控场景1
本文介绍了专线互联线路远程Ping监控的实现方案。针对运营商中间设备导致端口状态无法真实反映线路通断的问题,提出通过脚本执行端到端Ping检测的方案。具体实现包括:1)使用Expect脚本登录设备执行Ping测试并格式化结果;2)通过Shell脚本处理线路信息并生成JSON格式数据;3)配置Zabbix监控系统,创建自动发现规则和监控项原型,实现线路状态的自动监控。该方案适用于专线数量不多但重要的场景,能够有效检测中间有运营商设备的专线线路通断状态,最终在Zabbix中实现可视化的告警展示。
开灯问题C++版
开灯问题 有n盏灯,编号为1~n。第一个人把所有灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第三个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关掉),以此类推。一共有k个人,问最后有那些灯开着?输入:n和k,输出开着灯的编号。k<=n<=1000。 样例输入:7 3 样例输出:1 5 6 7 #include&...
RAW、RGB、YUV图像格式的采样与存储原理详解
本文详细解析了RAW、RGB和YUV三种核心图像格式的采样与存储原理。RAW是传感器原始数据,信息完整但需后期处理;RGB直接对应显示,直观但数据量大;YUV通过亮色分离与色度下采样,在保证观感的前提下大幅提升传输与存储效率,是视频编码与流媒体的主流格式。理解其差异是图像处理与视频开发的基础。
1126



被折叠的 条评论
为什么被折叠?



