约瑟夫问题的题目和描述就不说了,题目链接有很多,我直接瞎选了一个,自己看看就可以:
点这里,原版题目,自己试试看
洛谷的题
思路
首先说思路,每一轮都会有1个人退出,在这里我们会关心谁退出了,谁留下来。
第一轮:第m%n个人退出
第二轮:第2m%n个人退出
·
·
·
·
第n-1轮:第(nm-m)%n个人退出
此时还剩下一个人,他就是胜者
所以这个问题用一个循环就可以搞定
#include <cstdio>
int n,m;
int main(){
scanf("%d %d",&n,&m);
int ans=0