(演算法練習) 201712 2遊戲(CCF模擬)

2021-10-02 21:15:23 字數 759 閱讀 3646

這一題和之前在c語言網上的一題很相似,迴圈報數,傳送門:

(演算法練習)——迴圈報數問題

迴圈報數問題要求

1、給定數字是3,到3就出隊,看最後剩下的人編號

2、這是迴圈報數,即1,2,3,1,2,3這樣報數

本題要求

1、任給學生人數、數字,這個很好辦,因為計算方式都是一樣的

2、這是人數迴圈,但數字不迴圈,即在有限的人裡,1,2,3,4,5這樣依次報數下去

處理方式:

這種問題用佇列真的非常方便,不同之處在於,這一題的佇列有標記的功能,即學生就這麼多人,他們是不斷重複報數的,如果這個人報的數不會被舍,那個這個人的佇列數字就放到隊尾,如果被舍了,這個人的佇列數字直接出隊,在這個過程中,增加乙個cnt (初始為1),每次++,就可以了

經過最近對ccf1,2題的練習,感覺ccf的第二題似乎傾向於棧、佇列、hash表這些的使用

ac**:

#include

#include

#include

using

namespace std;

intmain()

while

(!q.

empty()

)else

else

} cnt++

;//cnt每次+1

}return0;

}

201712 2 遊戲(模擬)

include include include using namespace std intmain 方法一 使用標誌位 單獨設定偏移量offset,而不用報的數確定下標offset的原因 報的數num增加是有條件的,而偏移量是在每次迴圈遍歷的過程中都要無條件增加的 int num 0 int c...

ccf認證 201712 2 遊戲

題目 問題描述 有n個小朋友圍成一圈玩遊戲,小朋友從1至n編號,2號小朋友坐在1號小朋友的順時針方向,3號小朋友坐在2號小朋友的順時針方向,1號小朋友坐在n號小朋友的順時針方向。遊戲開始,從1號小朋友開始順時針報數,接下來每個小朋友的報數是上乙個小朋友報的數加1。若乙個小朋友報的數為k的倍數或其末位...

python實現 201712 2 遊戲

試題編號 201712 2 試題名稱 遊戲 時間限制 1.0s 記憶體限制 256.0mb 問題描述有n個小朋友圍成一圈玩遊戲,小朋友從1至n編號,2號小朋友坐在1號小朋友的順時針方向,3號小朋友坐在2號小朋友的順時針方向,1號小朋友坐在n號小朋友的順時針方向。遊戲開始,從1號小朋友開始順時針報數,...