#include<bits/stdc++.h>
using namespace std;
bool a[10100]={0};
int main()
{
int n,baoshu=0,s;
cin>>n;
s=n;
while(1)
{
baoshu=0;
for(int i=1;i<=n;i++)
{
if(a[i]==0)
{
baoshu++;
if(baoshu%2==0)
{
a[i]=1;s--;
}
}
}
if(s<=3){break;}
baoshu=0;
for(int i=1;i<=n;i++)
{
if(a[i]==0)
{
baoshu++;
if(baoshu%3==0)
{
a[i]=1;s--;
}
}
}
if(s<=3){break;}
}
for(int i=1;i<=n;i++)
{
if(a[i]==0)
{
cout<<i<<" ";
}
}
}
题目描述
秋冬季阳光明媚的上午,老师带领同学们在做一个游戏,首先同学们排成一列,然后从 1 开始依次给同学们一个编号,如果有 5 位同学,他们的编号依次为 1、2、3、4、5。游戏的规则如下:
1)从队头开始依次按一、二、一、二、……报数,凡是报到数为二的出来;
2)剩余的同学依次靠拢重新排成一列,从队头开始依次按一、二、三、一、二、三、……报数,凡是报到数为三的出来;
3)重复第 1)、2),直到剩余的人数不超过 3 为止。
输入格式
输入数据只有一行一个正整数 n,表示学生人数。
输出格式
剩余的学生编号。一行由空格分隔的若干正整数。
样例
输入#1
5
Copy
输出#1
1 3 5
Copy
输入#2
9
Copy
输出#2
1 7
Copy
数据范围
对于 100% 的测试数据满足:4≤n≤100004≤n≤10000。