Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
42
Task/Negative-base-numbers/11l/negative-base-numbers.11l
Normal file
42
Task/Negative-base-numbers/11l/negative-base-numbers.11l
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
F encode_neg_base(=n, b)
|
||||
I n == 0
|
||||
R ‘0’
|
||||
[Int] out
|
||||
L n != 0
|
||||
(n, V rem) = divmod(n, b)
|
||||
I rem < 0
|
||||
n++
|
||||
rem -= b
|
||||
out.append(rem)
|
||||
R reversed(out).map(String).join(‘’)
|
||||
|
||||
F decode_neg_base(nstr, b)
|
||||
I nstr == ‘0’
|
||||
R 0
|
||||
V total = 0
|
||||
L(ch) reversed(nstr)
|
||||
V i = L.index
|
||||
total += Int(ch) * b ^ i
|
||||
R total
|
||||
|
||||
print(‘Encode 10 as negabinary (expect 11110)’)
|
||||
V result = encode_neg_base(10, -2)
|
||||
print(result)
|
||||
I decode_neg_base(result, -2) == 10
|
||||
print(‘Converted back to decimal’)
|
||||
E
|
||||
print(‘Error converting back to decimal’)
|
||||
print(‘Encode 146 as negaternary (expect 21102)’)
|
||||
result = encode_neg_base(146, -3)
|
||||
print(result)
|
||||
I decode_neg_base(result, -3) == 146
|
||||
print(‘Converted back to decimal’)
|
||||
E
|
||||
print(‘Error converting back to decimal’)
|
||||
print(‘Encode 15 as negadecimal (expect 195)’)
|
||||
result = encode_neg_base(15, -10)
|
||||
print(result)
|
||||
I decode_neg_base(result, -10) == 15
|
||||
print(‘Converted back to decimal’)
|
||||
E
|
||||
print(‘Error converting back to decimal’)
|
||||
Loading…
Add table
Add a link
Reference in a new issue