求在這個圓圈中剩下的最後乙個數字

2021-06-04 21:47:55 字數 526 閱讀 7397

第18題(陣列):

題目:n個數字(0,1,…,n-1)形成乙個圓圈,從數字0開始,

每次從這個圓圈中刪除第m個數字(第乙個為當前數字本身,第二個為當前數字的下乙個數字)。

當乙個數字刪除後,從被刪除數字的下乙個繼續刪除第m個數字。

求出在這個圓圈中剩下的最後乙個數字。

//coder:lee

//20120227

#include

#include

#include

#include

#include

using namespace std;

int findlastonenumber(int n,int m)//o(n*m)

int k=0;

while(v.size()!=1)

return *v.begin();

}int findlastonenumber2(int n,int m)//o(n),此演算法思路見

return f;

}int main()

求圓圈中剩下的最後乙個數字

n個數字 0,1,n 1 形成乙個圓圈,從數字0開始,每次從這個圓圈中刪除第m個數字 第乙個為當前數字本身,第二個為當前數字的下乙個數字 當乙個數字刪除後,從被刪除數字的下乙個繼續刪除第m個數字。求出在這個圓圈中剩下的最後乙個數字。這個問題在wiki上叫約瑟夫斯問題。一開始的序列是 s n n 1,...

33 求圓圈中最後剩下的數

每年六一兒童節,牛客都會準備一些小禮物去看望孤兒院的小朋友,今年亦是如此。hf作為牛客的資深元老,自然也準備了一些小遊戲。其中,有個遊戲是這樣的 首先,讓小朋友們圍成乙個大圈。然後,他隨機指定乙個數m,讓編號為0的小朋友開始報數。每次喊到m 1的那個小朋友要出列唱首歌,然後可以在禮品箱中任意的挑選禮...

求乙個數中1的個數

碰到遇到乙個有趣的題,求乙個數二進位制的表示中1的個數,該題有兩種解法,一種是使用短除法將該數直接轉化為二進位制數,另一種比較巧妙的演算法是使用與運算,原理如下圖所示 依照此種思入有如下演算法 int numberof1 solution3 int i return count 依照短處法的思路 有...