黄钲栋 • 4年前
谁会做这个?:N个人围成一圈,从第一个开始报数,第M个将被杀掉,最后剩下一个,其余人都将被杀掉,请输出被掉人的顺序.
评论:
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int n,t;
bool vis[N];
void deal(int m)
{
int tot=n;
int p=0;
for(int i=1;tot>1;i++)
{
if(i>n) i=1;
if(vis[i]) continue;
if(++p==m)
{
p=0;
vis[i]=1;
tot--;
cout<<i<<" ";
}
}
}
int main()
{
cin>>n>>t;
deal(t);
return 0;
}
/*for(int i=1;i<=n;i++)
if(!vis[i])
{
printf("%d\n",i);
return ;
}
*/