当前位置: 首页 > article >正文

开关灯问题(c语言)

       样例:10 10    ,输出:1,4,9

                   5   5     ,输出:1,4

代码如下

#include<stdio.h>
//引入bool值的概念
#include<stdbool.h>
int main()
{
	int n = 0;//n为灯的数量
	int m = 0;//m为人的数量
	int i;
	scanf("%d %d", &n, &m);

	//如果只有一个人
	//肯定全部灯是关闭的
	if (m == 1)
	{
		for (i = 0; i < n; i++)
		{
			printf("%d", i+1 );
		}
		printf("%d", n);
        return 0;
	}
	//从第二个人开始要进行取反操作,如果灯关着,那么就把灯打开
	else
	{
		//bool数组的创建
		bool light[5000];
		for (i = 0; i < n; i++)//数组的遍历
		{
			//因为第一个人把灯全关了,所以把bool数组初始化为false
			light[i] = false;
		}
		
		int j = 1;
		while(j!=m)
		{
			j++;
			//从第二个人开始
			for (i = 1; i < n; i++)
			{
				
				if (i % j == 0)//判断是否为几的倍数。
				{
					light[i] = !light[i];//逻辑取反操作,把开的灯关着,关的灯开起来
				}
			}
		}
		int flag = 0;
		for (i = 1; i < n; i++)
		{
			if (light[i] == false && flag == 0)
			{  //格式问题,第一个不输出“,”
				flag = 1;
				printf("%d", i);
			}
			else if (light[i] == false)
			{
				printf(",%d", i);  //依次输出灯关闭的下标
			}
		}
	}
 return 0;
}


http://www.kler.cn/a/372458.html

相关文章:

  • Flink调优----反压处理
  • 【设备 磁盘】重要备份存放U盘的风险 + winhex 磁盘清零(清理windows无法格式化的磁盘)
  • 【NLP高频面题 - 高效微调篇】什么是提示微调?
  • 如何在谷歌浏览器中进行网络速度测试
  • 【Linux】查询磁盘空间被谁占用了
  • springboot项目对数据库密码加解密
  • win10的基础上安装Ubuntu22.04
  • 元数据 - ​媒体管理
  • Linux 基础知识总结
  • Linux日志分析-应急响应实战笔记
  • 【万兴科技-注册_登录安全分析报告】
  • ““ 引用类型应用举例
  • .NET Core WebApi第1讲(概念):Web基础、AJAX、JQuery
  • RTP064B示波器
  • 对指针和引用的深入理解
  • uni-app 运行HarmonyOS项目
  • 【YApi】接口管理平台
  • MacOS M1在CentOS8下安装Docker遇到的问题
  • 如何写出爆款脚本,很多人都忽略了这一项——口语化
  • python json模块介绍
  • WPF+MVVM案例实战(九)- 霓虹灯字效果控件封装实现
  • 宠物空气净化器哪个好?希喂、352真实测评分享
  • 鸿蒙系统:核心特性、发展历程与面临的机遇与挑战
  • LLAMAFACTORY:一键优化大型语言模型微调的利器
  • LeetCode115:不同的子序列
  • 浅析正交投影矩阵和透视投影矩阵的推导