题目:P1145 约瑟夫 代码如下,AC了但是不知道为什么对,如果出现了一个人重复出列的情况怎么办
for(int i=k+1;i;i++)//枚举,报到i就出列 { bool ok=true; int id=0;//数到第几个人 for(int j=0;j<k;j++)//出列了几个人 { id=(id+i-1)%(2*k-j); if(id<k) { ok=false; break; } } if(ok) { cout << i; return 0; } }