aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWalt Mankowski <waltman@pobox.com>2020-07-18 17:31:04 -0400
committerWalt Mankowski <waltman@pobox.com>2020-07-18 17:31:04 -0400
commit45bd7b0e976c7e1f2b78b311a14703aed4b89ebf (patch)
treea3be187f134c92a6786bac3d420d188917030e64
parenta19f49c909d5a5d5ce47de002140b62934295033 (diff)
downloadperlweeklychallenge-club-45bd7b0e976c7e1f2b78b311a14703aed4b89ebf.tar.gz
perlweeklychallenge-club-45bd7b0e976c7e1f2b78b311a14703aed4b89ebf.tar.bz2
perlweeklychallenge-club-45bd7b0e976c7e1f2b78b311a14703aed4b89ebf.zip
C code for challenge 69 task 1
-rw-r--r--challenge-069/walt-mankowski/c/ch-1.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/challenge-069/walt-mankowski/c/ch-1.c b/challenge-069/walt-mankowski/c/ch-1.c
new file mode 100644
index 0000000000..a5e15845c6
--- /dev/null
+++ b/challenge-069/walt-mankowski/c/ch-1.c
@@ -0,0 +1,52 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+const size_t min(const size_t a, const size_t b) {
+ return a <= b ? a : b;
+}
+
+int is_strobogrammatic(const long long n) {
+ char s[20];
+ sprintf(s, "%lld", n);
+ const size_t len = strlen(s);
+ for (size_t i = 0; i < min(len/2+1, len); i++) {
+ const size_t j = len-1-i;
+ switch (s[i]) {
+ case '0':
+ if (s[j] != '0')
+ return 0;
+ break;
+ case '1':
+ if (s[j] != '1')
+ return 0;
+ break;
+ case '6':
+ if (s[j] != '9')
+ return 0;
+ break;
+ case '8':
+ if (s[j] != '8')
+ return 0;
+ break;
+ case '9':
+ if (s[j] != '6')
+ return 0;
+ break;
+ default:
+ return 0;
+ }
+ }
+ return 1;
+}
+
+int main(int argc, char *argv[]) {
+ const long long A = atoll(argv[1]);
+ const long long B = atoll(argv[2]);
+
+ for (long long i = A; i <= B; i++)
+ if (is_strobogrammatic(i))
+ printf("%lld\n", i);
+
+ return 0;
+}