diff options
| author | Archargelod <archargelod@gmail.com> | 2024-02-14 11:23:50 +0800 |
|---|---|---|
| committer | Archargelod <archargelod@gmail.com> | 2024-02-14 11:23:50 +0800 |
| commit | 119790ae0a631a4d00078c329c1454a776dbc987 (patch) | |
| tree | d16b616a2a038450543ac24379a7503d8db8ad2f /challenge-002/archargelod | |
| parent | 0eea0ad3c68531bab8e840b94d3ab2dfb02f1683 (diff) | |
| download | perlweeklychallenge-club-119790ae0a631a4d00078c329c1454a776dbc987.tar.gz perlweeklychallenge-club-119790ae0a631a4d00078c329c1454a776dbc987.tar.bz2 perlweeklychallenge-club-119790ae0a631a4d00078c329c1454a776dbc987.zip | |
weeks 1-4, 256 in Nim
Diffstat (limited to 'challenge-002/archargelod')
| -rw-r--r-- | challenge-002/archargelod/README | 1 | ||||
| -rwxr-xr-x | challenge-002/archargelod/nim/ch_1.nim | 6 | ||||
| -rwxr-xr-x | challenge-002/archargelod/nim/ch_2.nim | 19 |
3 files changed, 26 insertions, 0 deletions
diff --git a/challenge-002/archargelod/README b/challenge-002/archargelod/README new file mode 100644 index 0000000000..6cd57e1074 --- /dev/null +++ b/challenge-002/archargelod/README @@ -0,0 +1 @@ +Solution by archargelod diff --git a/challenge-002/archargelod/nim/ch_1.nim b/challenge-002/archargelod/nim/ch_1.nim new file mode 100755 index 0000000000..660050cb50 --- /dev/null +++ b/challenge-002/archargelod/nim/ch_1.nim @@ -0,0 +1,6 @@ +#!/usr/bin/env -S nim r -d:release --verbosity:0 --hints:off +import strutils + +var Number = "000012312" +Number.removePrefix('0') +echo Number diff --git a/challenge-002/archargelod/nim/ch_2.nim b/challenge-002/archargelod/nim/ch_2.nim new file mode 100755 index 0000000000..43c66ee9f4 --- /dev/null +++ b/challenge-002/archargelod/nim/ch_2.nim @@ -0,0 +1,19 @@ +#!/usr/bin/env -S nim r -d:release --verbosity:0 --hints:off +import std/sequtils + +proc encode(num: int, base: seq[char]): string = + if num == 0: return "0" + var num = num + while num > 0: + result.insert $base[num mod base.len] + num = num div base.len + +proc decode(num: string, base: seq[char]): int = + for d in num: + let v = base.find(d) + result = result * base.len + v + +const Base = toSeq('0'..'9') & toSeq( 'A'..'Y') +const Test = 123456789 + +echo Test, " == ", Test.encode(Base), " == ", Test.encode(Base).decode(Base) |
