練習1 選老大問題

2022-03-16 10:19:08 字數 689 閱讀 8518

有156個海盜在乙個島上,他們決定選乙個人出來做老大,由於人這麼多,選誰當老大一直沒有選好,於是他們想出來乙個辦法,把這156個人從1到156編號,然後按1, 2, 1, 2, …報數,報到1的退出選舉,剩下來的人繼續重新報數,然後把『1』的人踢出局,最後剩下來的就是老大。那麼請問,誰是老大?

簡化過程:

1到156不停的除2,最後剩下乙個數,那個數是多少。

小於156的2的冪的最大值

即改數為128

直接方式:

a=

[nforn

inrange(1

,157

)]times=1

while

len!=1:

forbina

:if(b

%(2*

times)!=

0):a.

remove(b

)times*=2

len=a.

__len__

()print

("the boss is :%d"

%a[0

])

數學方式:

x=

1while

x<

156:x*=

2print

("the boss is :%d"

%(x/

2))

搜尋練習1 棋盤問題 dfs詳解

在乙個給定形狀的棋盤 形狀可能是不規則的 上面擺放棋子,棋子沒有區別。要求擺放時任意的兩個棋子不能放在棋盤中的同一行或者同一列,請程式設計求解對於給定形狀和大小的棋盤,擺放k個棋子的所有可行的擺放方案c。input 輸入含有多組測試資料。每組資料的第一行是兩個正整數,n k,用乙個空格隔開,表示了將...

8 1DFS選數問題深搜引數index忘 1

問題 dfs index 1,nowk,sum,sumsqu 又忘了使index 1。在深蒐時,要不index 1,要不nowk 1,總得有乙個退出條件。注意 ans temp vector竟然有這種賦值方式。include include using namespace std 從n個數選k個數使...

日常演算法練習(1)N皇后問題常規題解

1.在乙個n x n的棋盤上,每行放乙個 皇后 2.不能互相攻擊 不在同一直線 對角線上存在 3.返回所有解決方案 4.輸出答案為 皇后 位置為 q 空位置為 n x n的棋盤 int result newint n n 驗證位置是否符合 不能互相攻擊 原則 public boolean valid...