6 条题解
-
2
#include<bits/stdc++.h> using namespace std; int main(){ int n,m=1,x; cin>>n>>x; bool b[n+1]; for(int i=1;i<=n;i++){ b[i]=true; } for(int j=1;j<=x;j++){ for(int i=1;i<=n;i++){ if(i%j==0){ if(b[i]==true){ b[i]=false; } else{ b[i]=true; } } } } int a[n+1]; for(int i=1;i<=n;i++) { if(b[i]==0){ a[m]=i; m++; } } m--; for(int i=1;i<m;i++){ cout<<a[i]<<","; } cout<<a[m]; return 0; }
-
2
#include<bits/stdc++.h> using namespace std; int a[10]; int main(){ int n,k,sum=1; cin>>n>>k; for(int i=1;i<=k;i++){ for(int m=1;m<=n;m++){ if(m%i==0) a[m]=!a[m]; } } for(int i=1; i<=n; i++){ if(a[i]==1) sum=sum+2; } sum--; for(int i=1; i<=n; i++){ if(a[i]==0) { cout<<i; if(sum--) cout<<","; } } return 0; }
-
-1
#include<bits/stdc++.h> using namespace std; int main(){ int n,m=1,x; cin>>n>>x; bool b[n+1]; for(int i=1;i<=n;i++){ b[i]=true; } for(int j=1;j<=x;j++){ for(int i=1;i<=n;i++){ if(i%j==0){ if(b[i]==true){ b[i]=false; } else{ b[i]=true; } }
} } int a[n+1]; for(int i=1;i<=n;i++) { if(b[i]==0){ a[m]=i; m++; } } m--; for(int i=1;i<m;i++){ cout<<a[i]<<","; } cout<<a[m]; return 0;
}
-
-1
题目描述 假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。
第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。
请问:当第M个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用逗号间隔。
输入 输入正整数N和M,以单个空格隔开。
输出 顺次输出关闭的灯的编号,其间用逗号间隔。
样例 输入数据 1 10 10 输出数据 1 1,4,9 来源 一本通在线评测 小孩不能抄袭哦!
-
-13
题目描述
假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。
第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。
请问:当第M个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用逗号间隔。
输入
输入正整数N和M,以单个空格隔开。
输出
顺次输出关闭的灯的编号,其间用逗号间隔。
- 1
信息
- ID
- 1274
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 353
- 已通过
- 102
- 上传者