diff options
| author | Walt Mankowski <waltman@pobox.com> | 2020-07-18 17:31:04 -0400 |
|---|---|---|
| committer | Walt Mankowski <waltman@pobox.com> | 2020-07-18 17:31:04 -0400 |
| commit | 45bd7b0e976c7e1f2b78b311a14703aed4b89ebf (patch) | |
| tree | a3be187f134c92a6786bac3d420d188917030e64 | |
| parent | a19f49c909d5a5d5ce47de002140b62934295033 (diff) | |
| download | perlweeklychallenge-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.c | 52 |
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; +} |
