From 82ba21af0df282d240e8b76dd3c8f370f2687486 Mon Sep 17 00:00:00 2001 From: kevin Date: Sun, 10 Feb 2019 17:50:09 -0500 Subject: [PATCH] Add solution for problem-59 and a C solution for problem 40 --- problem-40.c | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++ problem-59.py | 51 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 problem-40.c create mode 100644 problem-59.py diff --git a/problem-40.c b/problem-40.c new file mode 100644 index 0000000..b8ba013 --- /dev/null +++ b/problem-40.c @@ -0,0 +1,65 @@ +#include +#include +#include + +#define MAX_NUM 1000000 + +char* LETTERS = "0123456789"; + + +int digits(int* res, int num) +{ + int len = 0; + while (num > 0) { + len++; + res = (int*)realloc(res, len * sizeof(int)); + res[len-1] = num % 10; + num /= 10; + } + + return len; +} + + +int main(int argc, char** argv) +{ + char* str; + int* digs; + int nums, j, result; + int digit = 0, i = 0, num = 1; + + str = malloc(MAX_NUM * sizeof(int)); + digs = malloc(0 * sizeof(int)); + nums = digits(digs, num); + + while (digit < MAX_NUM) { + str[digit] = digs[nums-1-i]; + digit++; + i++; + if (i == nums) { + /* refill digs and reset i */ + num++; + nums = digits(digs, num); + i = 0; + /* DEBUG + printf("num = %d str = ", num); + for (j=0; j