51nod 1073 約瑟夫環

2022-06-13 22:00:13 字數 607 閱讀 1314

n個人坐成乙個圓環(編號為1 - n),從第1個人開始報數,數到k的人出列,後面的人重新從1開始報數。問最後剩下的人的編號。

例如:n = 3,k = 2。2號先出列,然後是1號,最後剩下的是3號。

input

2個數n和k,表示n個人,數到k出列。(2 <= n, k <= 10^6)
output

最後剩下的人的編號
input示例

3 2
output示例

3

清楚解析

用函式表示:

f(1)=0

當有2個人的時候(n=2),報道(m-1)的人自殺,最後自殺的人是誰?應該是在只有乙個人時,報數時得到的最後自殺的序號加上m,因為報到m-1的人已經自殺,只剩下2個人,另乙個自殺者就是最後自殺者,用函式表示:

f(2)=f(1)+m

可以得到遞推公式:

f(i)=f(i-1)+m

因為可能會超出總人數範圍,所以要求模

f(i)=(f(i-1)+m)%i

1 #include2

intmain()

3

51Nod 1073 約瑟夫環

1073 約瑟夫環 題目 n個人坐成乙個圓環 編號為1 n 從第1個人開始報數,數到k的人出列,後面的人重新從1開始報數。問最後剩下的人的編號。例如 n 3,k 2。2號先出列,然後是1號,最後剩下的是3號。input 2個數n和k,表示n個人,數到k出列。2 n,k 10 6 output 最後剩...

51nod 1073 約瑟夫環

問題描述 n個人坐成乙個圓環 編號為1 n 從第1個人開始報數,數到k的人出列,後面的人重新從1開始報數。問最後剩下的人的編號。例如 n 3,k 2。2號先出列,然後是1號,最後剩下的是3號。輸入 2個數n和k,表示n個人,數到k出列。2 n,k 10 6 輸出 最後剩下的人的編號 樣例輸入 3 2...

51nod 1073 約瑟夫環

1073 約瑟夫環 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 n個人坐成乙個圓環 編號為1 n 從第1個人開始報數,數到k的人出列,後面的人重新從1開始報數。問最後剩下的人的編號。例如 n 3,k 2。2號先出列,然後是1號,最後剩下的是3號。input 2個數n和...