aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbigail <abigail@abigail.be>2021-11-01 20:16:15 +0100
committerAbigail <abigail@abigail.be>2021-11-01 20:16:15 +0100
commitdd6a1bfa4793a4da537a79ccbd70acf43141509a (patch)
tree78f72ab09979182f34ea47c649b05f6c5664208d
parentdf1b35e96d20b0fbbe887974cafb077b0b1209d9 (diff)
downloadperlweeklychallenge-club-dd6a1bfa4793a4da537a79ccbd70acf43141509a.tar.gz
perlweeklychallenge-club-dd6a1bfa4793a4da537a79ccbd70acf43141509a.tar.bz2
perlweeklychallenge-club-dd6a1bfa4793a4da537a79ccbd70acf43141509a.zip
C solutions for week 137
-rw-r--r--challenge-137/abigail/c/ch-1.c42
-rw-r--r--challenge-137/abigail/c/ch-2.c37
2 files changed, 79 insertions, 0 deletions
diff --git a/challenge-137/abigail/c/ch-1.c b/challenge-137/abigail/c/ch-1.c
new file mode 100644
index 0000000000..de5f7df145
--- /dev/null
+++ b/challenge-137/abigail/c/ch-1.c
@@ -0,0 +1,42 @@
+# include <stdlib.h>
+# include <stdio.h>
+# include <string.h>
+
+/*
+ * See ../README.md
+ */
+
+/*
+ * Run as: cc -o ch-1.o ch-1.c; ./ch-1.o < input-file
+ */
+
+short start_years [] = {1600, 2000};
+short long_year_offsets [] = {
+ 4, 9, 15, 20, 26,
+ 32, 37, 43, 48, 54,
+ 60, 65, 71, 76, 82,
+ 88, 93, 99,
+ 105, 111, 116, 122,
+ 128, 133, 139, 144, 150,
+ 156, 161, 167, 172, 178,
+ 184, 189, 195,
+ 201, 207, 212, 218,
+ 224, 229, 235, 240, 246,
+ 252, 257, 263, 268, 274,
+ 280, 285, 291, 296,
+ 303, 308, 314,
+ 320, 325, 331, 336, 342,
+ 348, 353, 359, 364, 370,
+ 376, 381, 387, 392, 398
+};
+
+int main (void) {
+ for (size_t i = 0; i < 2; i ++) {
+ for (size_t j = 0; j < 71; j ++) {
+ short year = start_years [i] + long_year_offsets [j];
+ if (1900 <= year && year <= 2100) {
+ printf ("%d\n", year);
+ }
+ }
+ }
+}
diff --git a/challenge-137/abigail/c/ch-2.c b/challenge-137/abigail/c/ch-2.c
new file mode 100644
index 0000000000..14f3efecf3
--- /dev/null
+++ b/challenge-137/abigail/c/ch-2.c
@@ -0,0 +1,37 @@
+# include <stdlib.h>
+# include <stdio.h>
+# include <string.h>
+
+/*
+ * See ../README.md
+ */
+
+/*
+ * Run as: cc -o ch-2.o ch-2.c; ./ch-2.o < input-file
+ */
+
+long reverse (long number) {
+ long reverse = 0;
+ while (number > 0) {
+ reverse *= 10;
+ reverse += number % 10;
+ number /= 10;
+ }
+ return reverse;
+}
+
+short ly (long n) {
+ return n >= 10000000 ? 1
+ : n == reverse (n) ? 0
+ : ly (n + reverse (n));
+}
+
+int main (void) {
+ long n;
+
+ while (scanf ("%ld", &n) == 1) {
+ printf ("%d\n", ly (n));
+ }
+
+ return (0);
+}