0
已解决
万韧山
初级天翼
初级天翼
题目链接: 酷町堂:5604
#include<bits/stdc++.h>
using namespace std;
int n,ans,cnt,k;
bool v[10005],f[10005];
int main(){
//取个位 %10
//取十位 /10%10
//取百位 /100%10
//取千位 /1000%10
//2^31次方没有超long long
//freopen("题目英文名.in","r",stdin);
//freopen("题目英文名.out","w",stdout);
cin>>n;
k=n;
for(int i=1;i<=n;i++){
v[i]=true;
}
for(int i=1;i<=n;i++){
cnt++;
if(cnt==2){
v[i]=0;
cnt=0;
k--;
}
if(cnt==3){
v[i]=0;
cnt=0;
k--;
}
}
for(int i=1;i<=n;i++){
if(k<=3){
if(v[i]) cout<<i<<' ';
}
}
//fclose(stdin);
//fclose(stdout);
return 0;
}
没学过队列(艹
有没有大佬解答
第二个样例不输出
0
0
熊潇然
初级启示者
初级启示者
这一题用模拟就行了,不用队列
定义bool类型的f[10005],表示记录第 i 个人是否出列,0为没出队,1为出队了
定义int类型res,res初值为n,表示还没出队的人数
while(res>3){
定义int类型k=0,表示报数
遍历1~n{
如果第 i 个人没出队{
报数+1
如果报到2,这第 i 个人就出列,同时报数置0,还没出对的人数-1
}
}
如果此时m<=3,退出while循环
报数置0
和上一个遍历1~n一样,if改成如果报道3就行了
}
最后输出没有出队的人
0