约瑟夫环
P1145 约瑟夫 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
index=(index+m-1)%num;
if(index>k && index<=2*k)
{
a[index]=0;
num--;
}
ac代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
const ll N=1e2+1;
int k,m,f,i,st;
int check(int l)
{
int index=0;
index=(st+m-1)%l;
if(index >= k)
{
st=index;
return 1;
}
else return 0;
}
int main()
{
IOS;
cin>>k;
while(!f)
{
f=1,st=0;
for(i=0;i<k;i++)
{
if(check(2*k-i)==0)
{
f=0;break;
}
}
m++;
}
m--;
cout<<m;
return 0;
}