演算法題(12)最後的倖存者

2021-09-11 05:29:48 字數 1185 閱讀 3701

每天兩道演算法題

一群海盜在海上遇難,漂泊到了一座孤島上。孤島上沒有任何食物,他們只好以人為食。。。

規則如下:

首先,讓n個海盜們圍成乙個大圈,編號為0 ~ n-1。

然後,隨機指定乙個數m,讓編號為0的海盜開始報數。

每次喊到m-1的那海盜要出列並且被淘汰。

從他的下乙個海盜開始,繼續0、1、……、m-1報數,直到剩下最後乙個海盜。

請設計乙個函式,求出最後的倖存者的編號。

#include

#include

#include

using

namespace std;

int64_t

get_lucky

(int64_t n,

int64_t m )

;int

main

(void

)int64_t

get_lucky

(int64_t n,

int64_t m )

執行演示

$ time ./a.out 

lucky number is: 23357

real 0m0.003s

user 0m0.002s

sys 0m0.000s

int64_t

get_lucky

(int64_t n,

int64_t m )

vector<

int64_t

>

::iterator pos = arr.

begin()

;for

(int64_t i=

1; i++i )

pos = arr.

erase

( pos );if

( pos == arr.

end(

)) pos = arr.

begin()

;}return

*pos;

}

int64_t

get_lucky

(int64_t n,

int64_t m )

return res;

}

推薦閱讀《未來世界的倖存者》

我覺得阮一峰先生可以作為我們90後程式設計師的楷模之一。他從2003年開始在網路上寫日誌,文章包含的內容非常廣博,涉及讀書 版權制度 經濟學 英語 歷史 it技術 醫學 電影 和美術 政治學 科學 創業 網際網路等23個大的分類,其中有的分類還包括一些更細的子條目。從這裡可以看出他是乙個興趣廣泛的人...

未來世界的倖存者 阮一峰

建議所有人都要看看 未來世界的倖存者 home 2016年3月,谷歌公司的圍棋程式 alphago 戰勝了世界冠軍李世石。這讓我猛然意識到,世界正處在乙個前所未有的大變局 機械人 自動化 人工智慧正在變得比人類更強大。在可預見的將來,技術最終將淘汰人類。技術變革導致了人類社會的重構。絕大部分的人沒機...

《未來世界的倖存者》讀後有感

最近抽空讀完了阮一峰的作品 未來世界的倖存者 之所以會讀完這本書,一來是久仰阮一峰大名,尤其是對於跨專業的大牛,我都十分仰慕。二來是這本書主要是作者對於未來的思考,對於現階段的我來說,需要這方面的思想指導。官方的書籍介紹是這樣的 本書為阮一峰部落格文集,主要收錄的是作者對技術變革的影響的一些思考,希...