201712 2 遊戲(模擬)

2021-10-21 17:46:46 字數 732 閱讀 6007

#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的倍數或其末位...