Re: [理工] 97成大資工程式設計

看板Grad-ProbAsk作者 (sasori.c)時間16年前 (2009/04/03 18:47), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
※ 引述《FRAXIS (喔喔)》之銘言: : ※ 引述《xan222 ()》之銘言: : : 用一個private變數儲存乘數. 令其為mul : : 部分程式碼: : : initial() mul = 1; : : MULTIPLYALL(n) mul *= n; : : write(k,m) array[k] = m; : : ZEROALL() mul = 0; : : read(k) return array[k]*mul; : initial() mul = 1, count = 1, prev_zero = 0 : MULTIPLAYALL(n) mul *= n, count = count + 1 : write(k,m) if (mul != 0) array[k] = m/mul : else array[k] = 0 : valid[k]=count, : count = count + 1 : ZEROALL() prev_zero = count, count = count + 1 : read(k) count = count + 1 : if (prev_zero > valid[k]) return 0 : else return array[k] * mul; : 我的想法是類似這樣的,或許還有bug,希望大家多多指教 路過剛好看到,也提供我自己的答案 雖然好像有點晚了 = = 不過也可以留給明年要考試的同學 當然,也有可能會有問題,煩請大家指教了 INITIAL () FOR each element I in array MOD MOD[I] ← 0 LOOP T ← 1 UPDATETIME ← 0 WRITE (k, m) ARRAY[m] ← k IF MOD[m] <= UPDATETIME THEN MOD[m] ← UPDATETIME + 1 ENDIF READ (k) IF MOD[k] > UPDATETIME THEN RETURN ARRAY[k] * T ELSE RETURN 0 ENDIF MULTIPLYALL (n) IF n EQUAL 0 THEN RETURN ERROR ELSE T ← T * n ZEROALL () UPDATETIME ← UPDATETIME + 1 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.114.130.133 ※ 編輯: sasoric 來自: 59.114.130.133 (04/03 18:47)
文章代碼(AID): #19rUaeuK (Grad-ProbAsk)