有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__
("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...