#題目:有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...