开关灯问题(c语言)

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

5 5 ,输出:1,4

代码如下

cs 复制代码
#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;
}
相关推荐
এ᭄画画的北北9 分钟前
力扣-11.盛最多水的容器
算法·leetcode
啊阿狸不会拉杆34 分钟前
《算法导论》第 7 章 - 快速排序
开发语言·数据结构·c++·算法·排序算法
John.Lewis1 小时前
C语言数据结构(4)单链表专题2.单链表的应用
c语言·数据结构·链表
冬夜戏雪1 小时前
java学习 73矩阵置零 54螺旋矩阵 148排序链表
数据结构·算法·矩阵
小酒星小杜1 小时前
我和女神有个约会之差点因为二维码太丑搞砸了🔥
前端·javascript·算法
智者知已应修善业1 小时前
【51单片机6位数码管密码锁】2022-10-15
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
意疏2 小时前
浙江大学PTA程序设计C语言基础编程练习题6-10
c语言·开发语言
快去睡觉~2 小时前
力扣137:只出现一次的数字Ⅱ
数据结构·算法·leetcode
阑梦清川2 小时前
folo介绍和fluent reader阅读器的使用(RSS订阅技术)
算法
2501_924879362 小时前
密集表盘漏检率↓79%!陌讯多模态融合算法在电表箱状态识别的边缘优化
人工智能·算法·计算机视觉·目标跟踪·智慧城市