aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xchallenge-192/feng-chang/raku/ch-1.raku5
-rwxr-xr-xchallenge-192/feng-chang/raku/ch-1a.raku5
-rwxr-xr-xchallenge-192/feng-chang/raku/ch-2.raku7
3 files changed, 17 insertions, 0 deletions
diff --git a/challenge-192/feng-chang/raku/ch-1.raku b/challenge-192/feng-chang/raku/ch-1.raku
new file mode 100755
index 0000000000..e3766da4dc
--- /dev/null
+++ b/challenge-192/feng-chang/raku/ch-1.raku
@@ -0,0 +1,5 @@
+#!/bin/env raku
+
+unit sub MAIN(UInt:D \N);
+
+put N.base(2).comb.map(1-*).join.parse-base(2);
diff --git a/challenge-192/feng-chang/raku/ch-1a.raku b/challenge-192/feng-chang/raku/ch-1a.raku
new file mode 100755
index 0000000000..809267e71d
--- /dev/null
+++ b/challenge-192/feng-chang/raku/ch-1a.raku
@@ -0,0 +1,5 @@
+#!/bin/env raku
+
+unit sub MAIN(UInt:D \N);
+
+put ('1' x N.base(2).chars).parse-base(2) - N;
diff --git a/challenge-192/feng-chang/raku/ch-2.raku b/challenge-192/feng-chang/raku/ch-2.raku
new file mode 100755
index 0000000000..2bf4d9c0a1
--- /dev/null
+++ b/challenge-192/feng-chang/raku/ch-2.raku
@@ -0,0 +1,7 @@
+#!/bin/env raku
+
+unit sub MAIN(*@N where .all ~~ UInt);
+
+put @N.sum %% +@N ??
+ (^+@N).map({ abs((@N[$_] - @N.sum div +@N) * ($_ - (+@N - 1) / 2)) }).sum !!
+ -1;