From a994d0c55846b925299290fad0257ee5086d0d79 Mon Sep 17 00:00:00 2001 From: Jonathan Chan Date: Mon, 5 Dec 2016 13:21:34 -0800 Subject: [PATCH] Problem 36 --- 36 | Bin 0 -> 9536 bytes 36.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100755 36 create mode 100644 36.c diff --git a/36 b/36 new file mode 100755 index 0000000000000000000000000000000000000000..6887128ccdeeebe36486ab2518c0797a21a3bb83 GIT binary patch literal 9536 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 in+&OxUM?uN;3~(({o(nG#%H1S&!~y#vc +#include +#include +#include +#include + +void intToDecimalString (int n, char** string) { + *string = malloc (sizeof (char) * (int)(floor (log10 (n)) + 1)); + sprintf (*string, "%d", n); +} + +void intToBinaryString (int n, char** string) { + char hex[9]; + sprintf (hex, "%x", n); + + char bins[16][5] = { "0000", "0001", "0010", "0011", + "0100", "0101", "0110", "0111", + "1000", "1001", "1010", "1011", + "1100", "1101", "1110", "1111" }; + + *string = malloc (sizeof (char) * 33); + (*string)[0] = '\0'; + for (int c = 0; c < 9; c++) { + if (hex[c] >= '0' && hex[c] <= '9') { + strcat (*string, bins[hex[c] - '0']); + } + else if (hex[c] >= 'a' && hex[c] <= 'z') { + strcat (*string, bins[hex[c] - 'a' + 0xa]); + } + } +} + +bool isPalindrome (char* string) { + int index = 0; + while (string[index] == '0') + index++; + + bool palindromic = true; + int len = strlen (string); + for (int i = 0; i < (len - index) / 2; i++) { + if (string[index + i] != string[len - i - 1]) { + palindromic = false; + break; + } + } + + return palindromic; +} + +int main () { + int sum = 0; + for (int i = 1; i < 1000000; i++) { + char* decimal; + intToDecimalString (i, &decimal); + char* binary; + intToBinaryString (i, &binary); + if (isPalindrome (decimal) && isPalindrome (binary)) { + sum += i; + printf ("%s, %s\n", decimal, binary); + } + free (decimal); + free (binary); + } + printf ("%d\n", sum); +}