返回列表 發帖

APCS大學程式設計先修檢測(2016/10/29)第3題

本帖最後由 ray 於 2022-6-5 16:51 編輯

//使用 link list的演算法
#n,m,k

#[[0,1,2],[1,2,2],[2,3,3],[3,4,4],[4,5,0]]
c = []
for i in range(n-1)
    t = []
    t.append(i+1)
    t.append(i+1)
    c.append(t)
t = []
t.append(n)
t.append(0)
c.append(t)
pre = n - 1
now = 0
i = 0
count = 0
while i < k:
    count = count + 1
    if count == m:
        c[pre][1] = c[now][1]
        count = 0
        i = i + 1
    pre = now
    now = c[now][1]
   
print(c[now][0])
---------------------------------------------------------------------------
//使用數學計算的倒推結果法:
l = 0
for i in range(n-k+1,n+1,1):
     l = (m + l) % i
print(l+1)

n=8,m=3,k=6的倒推結果
PS.上課時被最後炸掉的x搞混了,我有增加註解,你們可以看看應該比較清楚
----------------------------------------------------------------------------
數學計算法的影片在這

返回列表