作者sasoric (sasori.c)
看板Grad-ProbAsk
标题Re: [理工] 97成大资工程式设计
时间Fri Apr 3 18:47:03 2009
※ 引述《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)