8 条题解
-
0Guest
- 1
信息
- ID
- 104
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 153
- 已通过
- 45
- 上传者
#include<bits/stdc++.h>
using namespace std;
int a[102];//门打开是0,关闭是1
int main() {
for(int i=2; i<=100; i++) {
for(int j=1; j<=100; j++) {
if(j%i==0) {
if(a[j]==1) {
a[j]=0;
} else if(a[j]==0) {
a[j]=1;
}
}
}
}
for(int k=1;k<=100;k++) {
if(a[k]==0) {
cout<<k<<endl;
}
}
}
用bool数组解决哦~~
#include<bits/stdc++.h>
using namespace std;
bool a[101];
int main(){
for(int i=1;i<=100;i++){
for(int j=i,k=2;j<=100;j=(k++)*i){
a[j]=!a[j];
}
}
for(int i=1;i<=100;i++) if(a[i]) cout<<i<<endl;
return 0;
}
【问题描述】
```none
宾馆里有100个房间,从1~100编了号。第一个服务员把所有的房间门都打开了,
第二个服务员把所有编号是2的倍数的房间“相反处理”,
第三个服务员把所有编号是3的倍数的房间再做“相反处理”……,以后每个服务员都是如此。
当第100个服务员过来后,哪几扇门是打开的。(所谓“相反处理”是:原来开着的门关上,
原来关上的门打开)
【输入】
无输入
【输出】
打开的门的序号
每输出一个门号,换行输出下一个门号
```
注册一个 PYYG 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。