思路:直接模拟过程,用vis[i]表示第i个人是不是被淘汰了。用now表示当前的报数。 如果当前vis[i]==0 说明没被淘汰,然后判断是否要被淘汰,报数值now要加1
#include<bits/stdc++.h>
using namespace std
;
const int N
=1<<10;
bool vis
[N
];
int main(){
int n
,k
;cin
>>n
>>k
;
int num
=n
,now
=1;
while(num
>1){
for(int i
=1;i
<=n
&&num
>1;i
++){
if(!vis
[i
]){
if(now
%10==k
|| now
%k
==0){
vis
[i
]=1;
num
--;
}
++now
;
}
}
}
for(int i
=1;i
<=n
;i
++) if(!vis
[i
]) cout
<<i
;
return 0;
}
转载请注明原文地址: https://lol.8miu.com/read-37888.html