题意:
问每次走几步可以最终保留的是2号
注意首先删除1号城市,然后开始报号,第M个被删除,问M为多少最后可以留下2
思路:
之前理解错了,先直接删除1号,再开始报数。
约瑟夫裸题是从1开始报数,这个变形是从2开始报数
把1删除,按裸题思路所有编号前移一位即可
#include <iostream>
#include <stdio.h>
using namespace std;
int main()
{
int n,m;
cin>>n>>m;
if(n==1)
cout<<1<<endl;
else
{
int win=0;
for(int i=2;i<=n;i++)
win=(win+m)%i;
cout<<win+1<<endl;
}
return 0;
}