aboutsummaryrefslogtreecommitdiff
path: root/challenge-002/archargelod
diff options
context:
space:
mode:
authorArchargelod <archargelod@gmail.com>2024-02-14 11:23:50 +0800
committerArchargelod <archargelod@gmail.com>2024-02-14 11:23:50 +0800
commit119790ae0a631a4d00078c329c1454a776dbc987 (patch)
treed16b616a2a038450543ac24379a7503d8db8ad2f /challenge-002/archargelod
parent0eea0ad3c68531bab8e840b94d3ab2dfb02f1683 (diff)
downloadperlweeklychallenge-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/README1
-rwxr-xr-xchallenge-002/archargelod/nim/ch_1.nim6
-rwxr-xr-xchallenge-002/archargelod/nim/ch_2.nim19
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)