欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > 开关灯问题(c语言)

开关灯问题(c语言)

2024/10/24 17:49:48 来源:https://blog.csdn.net/2402_86350741/article/details/143198540  浏览:    关键词:开关灯问题(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数组初始化为falselight[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;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com