aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--challenge-102/adam-russell/prolog/ch-2.p29
1 files changed, 29 insertions, 0 deletions
diff --git a/challenge-102/adam-russell/prolog/ch-2.p b/challenge-102/adam-russell/prolog/ch-2.p
new file mode 100644
index 0000000000..b62179b8e0
--- /dev/null
+++ b/challenge-102/adam-russell/prolog/ch-2.p
@@ -0,0 +1,29 @@
+:-initialization(main).
+
+hcs(0, String, String).
+hcs(1, StringAccum, String):-
+ hcs(0, [35|StringAccum], String).
+hcs(N, StringAccum, String):-
+ number_codes(N, C),
+ append(C, "#", Accum),
+ length(Accum, L),
+ N0 is N - L,
+ append(Accum, StringAccum, StringAccum0),
+ hcs(N0, StringAccum0, String).
+
+hash_counting_string(N, String):-
+ hcs(N, [], S),
+ atom_codes(String, S).
+
+main:-
+ hash_counting_string(1, String1),
+ write(String1), nl,
+ hash_counting_string(2, String2),
+ write(String2), nl,
+ hash_counting_string(3, String3),
+ write(String3), nl,
+ hash_counting_string(10, String10),
+ write(String10), nl,
+ hash_counting_string(14, String14),
+ write(String14), nl,
+ halt.