機試真題 小朋友報數問題 約瑟夫環

2022-06-24 17:57:16 字數 446 閱讀 8071

沒啥難度,還是難以判斷測試用例的問題,也就是k是否大於10,否則就會採用字串進行判斷;

#include#include#include#includeusing namespace std;

int n, k;

struct node ;

queueque;

vectorvec;

bool charge(int m)

int main()

else

} int cnt = n + 1;

while (!que.empty())

else

} for (auto ele : vec)

}

這裡注意一下獲取個位數字的問題;

如果獲取個位數字,可以直接%10或者num-num/10*10;

自己當時腦子抽了沒想到;

小朋友報數 約瑟夫問題

約瑟夫問題是典型的佇列問題 首先我們讓所有的小朋友進隊,然後對他們邊出隊,邊判斷是否還回來。弄出去,再弄進來就是模擬佇列從隊首到隊尾的過程 充分利用佇列先進先出的特點。注意 佇列中while的條件 q.size 1而不是 while q.empty 因為最後要留乙個,此條件可能 會把最後乙個小朋友也...

USTC機試 約瑟夫環的問題

唯一註解 此處不用推導出的公式。而是利用佇列的方法,直接將報號為指定數字前的資料壓入到佇列結尾,如此往復迴圈,則可以輸出正確結果 約瑟夫環 約瑟夫問題 是乙個數學的應用問題 已知n個人 以編號1,2,3 n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開...

機試真題 關於分數相加的問題

模擬大致的分母相加減的問題 利用最大公約數和最小公倍數可以解決 對於不同分母,求最小公倍數 加和化簡之後,採用最大公約數進行分子分母同除計算 最小公倍數和最大公約數相關的問題之前總結過 include include includeusing namespace std int gys int a,...