2 solutions
-
0
#include<stdio.h> #include<stdbool.h> int main(){ int n,m; scanf("%d %d",&n,&m); int i; if(m==1){ //只有一个人直接输出所有 for(i=0;i<n-1;i++){ printf("%d,",i+1); } printf("%d",n); return 0; }else{ bool light[n]; //记录灯开/关 for(i=0;i<=n;i++){ light[i]=false; //初始化灯,默认第一个人已经关闭全部灯。 } int j=1; while(j!=m){ //依次遍历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; }
Information
- ID
- 6772
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 8
- Tags
- (None)
- # Submissions
- 186
- Accepted
- 33
- Uploaded By