开灯问题

memset详解 第一:memset函数按字节对内存块进行初始化,所以不能用它将int数组初始化为0和-1之外的其他值(除非该值高字节和低字节相同)。 第二:memset(void *s, int ch,size_t n);中ch实际范围应该在0~~255,因为该函数只能取ch的后八位赋值给你所输入的范围的每个字节,比如int a[5]赋值memset(a,-1,sizeof(int )*5)与memset(a,511,sizeof(int )*5) 所赋值的结果是一样的都为-1;因为-1的二进制码为(11111111 1 阅读详情
《算法竞赛入门经典》(刘汝佳)
有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的灯是否开着,模拟这些操作即可。 
#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;
}
1."memset(a,0,sizeof(a))"的作用是把数组清零,它也在string.h中定义。虽然也能用for循环完成相同的工作,但用memset又方便又快捷。
2.为了避免输出多余的空格,设置了一个标志变量first,可以表示当前要输出的变量是否为第一个。第一个变量前不应该有空格,但其他变量都有
 
开灯问题(C语言) 有n盏灯,编号为1~n。第一个人把所有灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第三个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),以此类推。一共有k个人,问最后有哪些灯开着?输入n和k,输出开着的灯的编号。. 样例输入: 7 3 样例输出: 1 5 6 7 #include <stdio.h> #include <stdlib.h> #include <string.h> int main() { 阅读详情

相关推荐

算法 简单的开灯问题

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

weixin_43913605的博客 1126

C语言基础应用实战:(详解实际问题以巩固C语言基础知识)——开灯问题:有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉)

1.开关问题的模拟:通过数组模拟每个灯的开关操作,可以清晰地理解问题的解决过程。2.标志量的使用:在输出时使用标志量控制格式,避免不必要的空格。3.效率分析:通过分析时间复杂度和空间复杂度,确认了该算法适用于题目中给出的范围。

Huazzi的博客 4201

C语言的开灯问题

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

GHost_7的博客 6260

【Python 百练成钢】灯光模拟

Python小技巧,对数组的灵活使用。

一个非常Cool的人 913

算法入门之开灯问题

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

VSCode+ESP-IDF开发环境搭建:从零开始创建你的第一个物联网项目(2024最新版)

本文详细介绍了如何在2024年使用VSCode和ESP-IDF搭建物联网开发环境,从零开始创建第一个物联网项目。内容包括环境准备、ESP-IDF配置、项目创建与结构解析、构建烧录步骤以及高级技巧和常见问题解决方案,帮助开发者快速上手ESP32开发。

weixin_29165725的博客 332

算法入门,开灯问题

题目: 有n盏灯,编号为1-n,第一个人把所有灯打开,第二个人按下所有编号两倍的开关(这些灯被关掉),第三个人按下所有编号三倍的开关,以此类推,一共有k个人,问最后有哪些灯开着? 输入:n和k,输出开着的灯的编号,k<=n<=1000 样例输入: 7 3 样例输出:1 5 6 7 思路: 由题目可以知道,原先所有灯都是关闭,第一个人是1的倍数,所以他操作1倍数的所有灯,然后让所有灯打开,依次2的倍数,3的倍数,我们发现灯的开关是对应相应的人数的倍数,所以我们采用两个for循环 .

qq_62718027的博客 1727

手机流畅的秘密:拆解LPDDR5X在骁龙8 Gen2平台上的电源与信号完整性设计

本文深入解析了LPDDR5X内存与骁龙8 Gen2处理器在旗舰手机中的协同设计,重点探讨了0.5V超低电压下的电源完整性设计以及8.5Gbps高速传输中的信号完整性挑战。通过详细的电源树架构、关键器件选型和布线策略分析,揭示了如何实现高性能与低功耗的完美平衡,为手机流畅体验提供硬件保障。

weixin_30235225的博客 484

[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万+

保姆级教程:在华为云Ubuntu服务器上快速搭建RAGflow开发环境(避坑指南)

本文提供了一份在华为云Ubuntu服务器上快速搭建RAGflow开发环境的保姆级教程。针对网络拉取镜像等常见问题,详细介绍了从服务器选型、系统优化、Docker配置到RAGflow部署与验证的全流程,并给出生产环境调优建议,帮助开发者高效避坑,快速构建企业级应用环境。

weixin_29250403的博客 87

Zabbix7.0实践:专线线路监控场景1

本文介绍了专线互联线路远程Ping监控的实现方案。针对运营商中间设备导致端口状态无法真实反映线路通断的问题,提出通过脚本执行端到端Ping检测的方案。具体实现包括:1)使用Expect脚本登录设备执行Ping测试并格式化结果;2)通过Shell脚本处理线路信息并生成JSON格式数据;3)配置Zabbix监控系统,创建自动发现规则和监控项原型,实现线路状态的自动监控。该方案适用于专线数量不多但重要的场景,能够有效检测中间有运营商设备的专线线路通断状态,最终在Zabbix中实现可视化的告警展示。

2301_80016499的博客 781

开灯问题C++版

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

sinat_35793960的博客 8719

RAW、RGB、YUV图像格式的采样与存储原理详解

本文详细解析了RAW、RGB和YUV三种核心图像格式的采样与存储原理。RAW是传感器原始数据,信息完整但需后期处理;RGB直接对应显示,直观但数据量大;YUV通过亮色分离与色度下采样,在保证观感的前提下大幅提升传输与存储效率,是视频编码与流媒体的主流格式。理解其差异是图像处理与视频开发的基础。

e4f5g6h7的博客 516
上一篇: 排列(decimal)
下一篇: Dom解析XML文件
jeffery0628
博客等级 码龄11年 39粉丝 112原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值