McNuggets problem: Difference between revisions
Content added Content deleted
imported>Chinhouse No edit summary |
Not a robot (talk | contribs) (Add 8080 Assembly) |
||
Line 31: | Line 31: | ||
</pre> |
</pre> |
||
=={{header|8080 Assembly}}== |
|||
<syntaxhighlight lang="asm"> org 100h |
|||
lxi h,200h ; Zero out a page to keep nugget flags |
|||
xra a |
|||
znugs: mov m,a |
|||
inr l |
|||
jnz znugs |
|||
lxi b,101 ; B = 6 stepper, C = 101 (limit) |
|||
loopa: mov d,b ; D = 9 stepper |
|||
loopb: mov l,d ; L = 20 stepper |
|||
loopc: inr m ; Mark nugget |
|||
mvi a,20 ; 20 step |
|||
add l |
|||
mov l,a |
|||
cmp c |
|||
jc loopc |
|||
mvi a,9 ; 9 step |
|||
add d |
|||
mov d,a |
|||
cmp c |
|||
jc loopb |
|||
mvi a,6 ; 6 step |
|||
add b |
|||
mov b,a |
|||
cmp c |
|||
jc loopa |
|||
mov l,c ; Find largest number not seen |
|||
scan: dcr l |
|||
dcr m |
|||
jp scan |
|||
mov a,l |
|||
mvi b,'0'-1 ; B = high digit |
|||
digit: inr b |
|||
sui 10 |
|||
jnc digit |
|||
adi '0'+10 ; A = low digit |
|||
lxi h,digits+1 |
|||
mov m,a ; Store digits |
|||
dcx h |
|||
mov m,b |
|||
xchg |
|||
mvi c,9 ; CP/M print string |
|||
jmp 5 |
|||
digits: db 0,0,'$' ; Placeholder for output</syntaxhighlight> |
|||
{{out}} |
|||
<pre>43</pre> |
|||
=={{header|Action!}}== |
=={{header|Action!}}== |
||
<syntaxhighlight lang="action!">PROC Main() |
<syntaxhighlight lang="action!">PROC Main() |