約瑟夫

#include<iostream>
using namespace std;
#define N 500000

int main(){
	int n, m;
	int i, j, k;
	int a[N+1];
	int num;

	while(cin >> n >> m && n && m){
		for(i =0; i <= n; i++)
			a[i] = 1;

		j = 0, k = 0, num = 0;
		for(i = 1; i <= n; i++){
			if(a[i] == 1){
				j = j + a[i];//count
				if(j == m){
					j = 0;
					a[i] = 0;//delete monkey
					k++;//out monkey number
				//	cout << k << " " << i << endl;

					if(k == n){//reminder 1 monkey
						num = i; //output num
						break;
					}
				}
			}
			if(i == n)//輪完一圈繼續從頭開始
				i = 0;
		}
		cout << num << endl;
	}
	return 0;
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章