问题描述:对n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人出列,剩下的人继续从1开始数,最后留下的一个人是胜利者。对输入的n和m,请输出最后留下的一个人的编号。
c++简单解法:
#include <iostream>
using namespace std;
int main()
{
long long n,m,s=0;
cin>>n>>m;
for(long long i=2; i<=n; i++)
s=(s+m)%i;
cout<<s+1<<endl;
}