#include
#include
#include
using
namespace std;
intmain()
/* 方法一:使用標誌位 */
// 單獨設定偏移量offset,而不用報的數確定下標offset的原因:
// 報的數num增加是有條件的,而偏移量是在每次迴圈遍歷的過程中都要無條件增加的
int num =0;
int cnt = n;
// 剩餘的人數
int offset =-1
;while
(cnt >1)
}// 該位置小朋友出局,num不增加,輪到下乙個小朋友
}sort
(kids.
begin()
, kids.
end())
; cout << kids.
at(kids.
size()
-1)<< endl;
/* 方法二:直接刪除滿足條件的元素 */
/* int num = 0;
int offset = -1;
while (kids.size() != 1)
} cout << kids[0] << endl;
*/return0;
}
參考:
(演算法練習) 201712 2遊戲(CCF模擬)
這一題和之前在c語言網上的一題很相似,迴圈報數,傳送門 演算法練習 迴圈報數問題 迴圈報數問題要求 1 給定數字是3,到3就出隊,看最後剩下的人編號 2 這是迴圈報數,即1,2,3,1,2,3這樣報數 本題要求 1 任給學生人數 數字,這個很好辦,因為計算方式都是一樣的 2 這是人數迴圈,但數字不迴...
CSP 201712 2 遊戲 佇列 中級模擬
201712 2 遊戲 佇列queue includequeueq 定義 q.push i 入隊,接到佇列末端 q.pop 彈出佇列第乙個元素,不返回值 q.front 返回佇列第乙個元素值 q.back 返回佇列最後乙個元素值 q.empty 隊列為空,返回true q.size 佇列元素個數佇列...
ccf認證 201712 2 遊戲
題目 問題描述 有n個小朋友圍成一圈玩遊戲,小朋友從1至n編號,2號小朋友坐在1號小朋友的順時針方向,3號小朋友坐在2號小朋友的順時針方向,1號小朋友坐在n號小朋友的順時針方向。遊戲開始,從1號小朋友開始順時針報數,接下來每個小朋友的報數是上乙個小朋友報的數加1。若乙個小朋友報的數為k的倍數或其末位...