約瑟夫環C 筆試題

2021-07-26 04:34:35 字數 889 閱讀 9611

約瑟夫環經典問題,自己剛好學習到。記錄一下,利用迴圈鍊錶實現的。
基本思路:建立乙個迴圈鍊錶,不斷按上述規律刪除第m個元素,直到所有元素被刪除。
2)借鑑網上其他**建立linklist類,感覺其實不用這個類一樣可以實現,使用後反而迷惑初學者。
該類建立的目的主要是建立種子節點鍊錶,並宣告子函式。
3)然後輸子函式,重點在建立包含全部節點的迴圈鍊錶、然後找準起始節點,其後找到第k個節點;以該節點為起點數到要刪除的節點,刪除之;然後將下一節點next作為當前節點。依次迴圈n次

#includeusing namespace std;

struct node

;class linklist

; void josephus(int n,int k,int m);

private:

node *first;

};void linklist::josephus(int n, int k, int m)

//數到第k個節點,使其為當前節點

p = first;

node *temp = p;//這個temp初始值保證了第一次開始計數到m的第乙個元素與其後各迴圈刪除元素起始點不一致情況下,迴圈體可正常執行。

while (--k)

p = p->next;

while (n--)

cout << p->date<<" ";

temp->next = p->next;

p = temp->next;

} cout <

筆試題 約瑟夫環的問題

約瑟夫遊戲的大意 30個遊客同乘一條船,因為嚴重超載,加上風浪大作,危險萬分。因此船長告訴乘客,只有將全船29個旅客投入海中,其餘人才能倖免於難。無奈,大家只得同意這種辦法,並議定30個人圍成一圈,由第乙個人數起,數到第三個人,便將他投入大海中,如此,迴圈的進行,直到剩下乙個遊客為止。問 哪些位置是...

華為筆試題目 約瑟夫環(Joseph)

測試空間 旗下大頭針 出品 我們班的c語言剛剛學習到第七章,昨天107班的耿 曾就讀於浙江大學 同學素質相當好,自己寫了乙個約瑟夫環。不過問題挺多的。這個題目非常經典,記得以前001班的陳 曾就讀於清華大學 同學去華為面試的時候考過這道題目。所以跟大家分享一下。什麼是約瑟夫環呢?約瑟夫環問題 問題描...

約瑟夫環 C 實現

include using namespace std void main int rem n 桌上剩餘人數 int pos 0 當前開始計數人的位置 int count 0 當前計數大小 一直迴圈到桌上只剩乙個人 while rem 1 if a pos true pos 輸出桌上剩餘的最後乙個人...