採用Ruby 實現丟手帕問題

2021-06-15 01:46:05 字數 764 閱讀 2343

#題目:有n個人圍成一圈,順序排號。從第乙個人開始報數(從1到3報數),

#凡報到3的人退出圈子,問最後留下的是原來第幾號的那位。

#實現思想:將陣列中的所有元素都定義為1,從第乙個開始累加求sum,設計乙個下標i,

#如果sum=3,則將進3的元素定為0,sum=0,繼續求和,直到最後乙個元素

#判斷如果是最後乙個元素,轉移index到0,又重新開始

def lose_shoupa(n)

arr = array.new(n)  #定義乙個長度為n的全部元素都是1的陣列

count = n

sum = 0

i,j =0,0

while count >1  #count控制迴圈次數,當它為1的時候,就是最後乙個元素了

if arr[i] == 1

sum = sum + arr[i]

#p "sum=#"

endif sum == 3

sum = 0

arr[i] = 0

count = count - 1

#p "i=#,a[i]=#,sum=#"

endi +=1

if i == n  #這一行是關鍵,實現下標的轉移,又從第乙個開始

i = 0

endend

p arr

for j in (0..n)

if arr[j] == 1

p "the last number is: #"

endend

end

丟手帕問題java實現

package com.xiaowen public class demo4 class child 環形鍊錶 class cyclink 設定鍊錶大小 public void setlen int len 設定從第幾個人開始數數 public void setk int k 開始play publ...

用PHP實現丟手帕問題(約瑟夫問題)

問題描述 有n個人圍成一圈,然後從任意指定的乙個 人那裡為起點,以m個人為單位,每轉m個人第m個人被殺死。求最後不會被殺死的人。遺留問題 在此用php做簡單的實現,php中對遞迴有100次的深度限制,所以在此不用遞迴,用迴圈 php中處理陣列的函式比較多,所以採用順序表 陣列 順序表刪除元素比較複雜...

約瑟夫問題 也叫丟手帕問題

約瑟夫問題 也叫丟手帕問題 不涉及很多演算法,但卻是乙個很好的邏輯訓練題!也是acm訓練oj上的一道題 我用陣列模擬做了一下 丟手帕問題 約瑟夫問題 include includeint main a i 1 置1 出列 while a i 1 找下乙個開始的位置 i i 1 n 注意死迴圈 beg...