有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樣例輸出
樣例輸入
7 3樣例輸出
資料規模和約定
對於所有評測用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 9。
分析:因為數字不大,直接模擬來做。
宣告乙個bool型別的陣列,用它來表示各個小朋友的狀態。
淘汰的條件是k的倍數或者對10取餘數為k;
注意當k=1的情況。
#includeusing namespace std;
int main()
int shuzi = 0;
bool you = true;
while (you)}}
} }for (int i = 0; i < n; i++) }
}
CCF認證考試 報數
這道題主要的目的是輸出甲乙丙丁所跳過的數,他們報數的順序都是甲乙丙丁 甲乙丙丁 這樣迴圈的,所以思路也很簡單,就是從1開始遍歷,直到報數的數目 n。我這裡設計了兩個計數器,乙個是用來記遍歷的數 total 乙個是記所報的數的數量 i 在遍歷的過程中,如果total滿足跳過的條件,就讓total來對4...
迴圈報數遊戲。
迴圈報數遊戲,有n個人,每乙個人編號從1開始,依次編號到n。從1到3報數,報3的退出遊戲,得出最後獲勝人的編號 關鍵在於構成環的這個下標問題如何解決?解題思路 解決了構成環的關鍵問題,接下來就是依次遍歷計數,當報到3的那個給乙個標記 1,相應的陣列長度要減少。且計數重新開始,最後,重新遍歷一遍,返回...
CCF認證 201912 1 報數 (100分)
前言 本人大二在讀煤渣一枚,期末做課設才接觸到ccf,就去了解了一下這個認證考試,覺得很有含金量,就下定決心要考個高分,計畫每2 3天做一道題吧,刷題熟悉套路也鍛鍊自己演算法設計,有時文末附大佬解題方法,做參考同時也對比找到自己的差距。ccf認證 201912 1 報數 100分 一般第一題都比較簡...