卡罗拉最近沉迷于ark游戏,游戏中的地图上有n个浮空的石头围成了一圈,在优秀的物理引擎支持下,这些石头会自动落下。她发现石头落下的顺序是有规律的。一共有n个石头,从第一块石头开始数,数到第m个石头,那块就是第一个落下的石头;之后从第一个落下的石头后一个重新从1开始数,同样数到第m个石头,那个就是第二个落下的石头;以此类推。为了方便,对这些石头从1开始编号。卡罗拉现在想知道最后落下的是那一块石头?
输入格式:
输入包含两个整数n和m (1<=m,n<=1000)。
输出格式:
输出一 个整数,代表最后落下的石头的编号。
输入样例:
10 3
输出样例:
4
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m;cin>>n>>m;
int d[n+1]={0};
int cnt=0,i=0;
while(cnt<n-1){
int flag=0;
while(flag<m){
i++;
if(i>n) i%=n;
if(!d[i]){
flag++;
}
}
d[i]=1;
cnt++;
}
for(int i=1;i<=n;i++)
if(!d[i])
cout<<i;
return 0;
}