1 クラスProductOfNumbers: 2 DEF __init__ (自己): 3 self.matrix = [] 4 self.preproducts = [] 5 self.length = 0 6 self.zeros = セット() 7 8 DEF追加(セルフ、NUM:INT) - > なし: 9 self.matrix.append(NUM) 10 なら NUM == 0: 11 self.zeros.add(self.length) 12 なら self.length == 0: 13 self.preproducts.append(NUM) 14 他: 15 プリ= self.preproducts [-1 ] 16 であれば、事前== 0: 17 self.preproducts.append(NUM) 18 他: 19 self.preproducts.append(NUM * PRE) 20 self.length + = 1 21 22 DEF > - :getProduct(INT自己、K)INT: 23 J = self.length - 1 24 1 - K - iはself.length = 25の 場合のJ - I == 1 : 26 戻りself.matrix [J] 27 のためのX でself.zeros: 28 であれば、X> I と X <= J: 29 リターン0 30 であれば、I < 0: 31 戻りself.preproducts [J] 32 戻り self.preproducts [J] // self.preproducts [I] もし self.preproducts [I]!= 0 他 self.preproducts [J]