問題描述
有n個小朋友圍成一圈玩游戲,小朋友從1至n編號,2號小朋友坐在1號小朋友的順時針方向,3號小朋友坐在2號小朋友的順時針方向,……,1號小朋友坐在n號小朋友的順時針方向,
游戲開始,從1號小朋友開始順時針報數,接下來每個小朋友的報數是上一個小朋友報的數加1,若一個小朋友報的數為k的倍數或其末位數(即數的個位)為k,則該小朋友被淘汰出局,不再參加以后的報數,當游戲中只剩下一個小朋友時,該小朋友獲勝,
例如,當n=5, k=2時:
1號小朋友報數1;
2號小朋友報數2淘汰;
3號小朋友報數3;
4號小朋友報數4淘汰;
5號小朋友報數5;
1號小朋友報數6淘汰;
3號小朋友報數7;
5號小朋友報數8淘汰;
3號小朋友獲勝,
給定n和k,請問最后獲勝的小朋友編號為多少?
輸入格式
輸入一行,包括兩個整數n和k,意義如題目所述,
輸出格式
輸出一行,包含一個整數,表示獲勝的小朋友編號,
樣例輸入
5 2
樣例輸出
3
樣例輸入
7 3
樣例輸出
4
資料規模和約定
對于所有評測用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 9,
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<queue>
using namespace std;
int main()
{
int n,k;
queue<int> q;
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)
q.push(i);
int t=1,u=1;
while(!q.empty())
{
u=q.front();
q.pop();
if(t%k==0||t%10==k);
else q.push(u);
t++;
}
printf("%d\n",u);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/274482.html
標籤:其他
上一篇:2021-4-9每日“一”題題解
