Solve problem 7 task 3
This commit is contained in:
parent
4c4af05b5f
commit
73c9e177dd
1 changed files with 15 additions and 2 deletions
|
@ -141,8 +141,21 @@
|
||||||
|
|
||||||
∇ digits←ReadUPC bits
|
∇ digits←ReadUPC bits
|
||||||
⍝ 2020 APL Problem Solving Competition Phase II
|
⍝ 2020 APL Problem Solving Competition Phase II
|
||||||
⍝ Stub function for Problem 7, Task 3 - ReadUPC
|
⍝ Problem 7, Task 3 - ReadUPC
|
||||||
⍝ Put your code and comments below here
|
:If 95≠⍴bits ⍝ incorrect number of bits
|
||||||
|
digits←¯1
|
||||||
|
:Else
|
||||||
|
⍝ Test if the barcode was scanned right-to-left.
|
||||||
|
:If 0=2|+/bits[3+⍳7]
|
||||||
|
bits←⌽bits
|
||||||
|
:EndIf
|
||||||
|
digits←({¯1+lrepr⍳⍵}¨(7/⍳6)⊆42↑3↓bits),{¯1+rrepr⍳⍵}¨(7/⍳6)⊆¯42↑¯3↓bits
|
||||||
|
:If ~∧/digits∊0,⍳9 ⍝ incorrect parity
|
||||||
|
digits←¯1
|
||||||
|
:ElseIf (⊃⌽digits)≠CheckDigit ¯1↓digits ⍝ incorrect check digit
|
||||||
|
digits←¯1
|
||||||
|
:EndIf
|
||||||
|
:EndIf
|
||||||
∇
|
∇
|
||||||
|
|
||||||
∇ parts←Balance nums;subsets;partitions
|
∇ parts←Balance nums;subsets;partitions
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue