From a15137d2bb00eec870d4c03252891fbd2c2fee77 Mon Sep 17 00:00:00 2001 From: Evan Hemsley Date: Fri, 2 Sep 2016 16:58:42 -0700 Subject: [PATCH] some c solutions --- c/binaries/euler001 | Bin 0 -> 8480 bytes c/euler.c | 5 +++ c/euler.h | 1 + c/euler001.c | 14 ++++++++ c/euler002 | Bin 0 -> 9176 bytes c/euler002.c | 29 ++++++++++++++++ c/int_list.c | 82 ++++++++++++++++++++++++++++++++++++++++++++ c/int_list.h | 20 +++++++++++ 8 files changed, 151 insertions(+) create mode 100755 c/binaries/euler001 create mode 100644 c/euler.c create mode 100644 c/euler.h create mode 100644 c/euler001.c create mode 100755 c/euler002 create mode 100644 c/euler002.c create mode 100644 c/int_list.c create mode 100644 c/int_list.h diff --git a/c/binaries/euler001 b/c/binaries/euler001 new file mode 100755 index 0000000000000000000000000000000000000000..f29eba96e0917aaa1d630ebf7d98fbc2140fa175 GIT binary patch literal 8480 zcmeHMPfQ$D7=POqOR)Num>B$1*)(F%M4+urxRC6c-AH3wsRh$CX`U?Xluef1$?k%1 z&^E!waA<-tUObrgZj1-LFF^$gwh}#nn;I#lg;Z(}Z~$f3-|x)~JG)fx#`%&r`~7+E z_kHg---O}K&8@Yn(T z;xrExt@t(B-Xp{FH*;QXpDw!#5 zxDv0!#(UQWpk21#9bijQswb08$CDRqe|0A9Q z!+x_{MknR{)cNcZluC5}8=fEQIltPTPuq>hK6cxs=jz1qQ*TDX$DL;)P_a+glz?3f zaolws!gJfACs?_w147i%wj~e{`cZ1ZZxBB6!}w6Zdama2%X{-UMhAvlSTBdesXONA zQ-MeK+mo1pkig?7ng=rJ=0rT&+&i4;g-v-5gLQoN(SvKjnZ8#K)!f)H zWU4C6fJ{vpGQC)D$cra`G^CkB=wc*i$Uiuy5%0J=)8ZyZo=9Eq_ z4z*DACH|CCdEy%?A(@)QC7+|Vf=tWEl)6RNEkhRO>1J&GJLXgg+x;deMg^@G>jz?ZJ-; zgc4_1;tI8;QUL%)C0nabYTV2`Xeul)B@9=}+e~@KNeMK~5}CGA5`Te=xH9G8BjeE- z;(^sI40g=mI0mxbM=*s>3ClrnFoTJO97(-Tj@et}gfB`?Y&qz~kW_{NL9- z8hUH=`~UOsQ{2DI$@k*d@XNvfRVmb&;{aCr^=f)cini=a(EfkT?elbx0gnNX0gnNX z0gnNX0gnNX0gnNX0gnNX0gr+IHUqVX{HM8t+8{s9>5t(mitoAjczrr8#zfj*8&oDf z7-tPw5TC+%#9r0kr(#2~o`Gx(-@3awy}7?To)ky*T$PSx1`=7(Y8``It;6}l*b7{K zweBI0GxYh0^yx2s`XJ(I_#_Tacz(h26P|0(_S@$X{0<0{AuUI6b=y4O;8_bKNIifr VzPoEwx<+e1PL0m)cI{t-{SBdU9Ay9i literal 0 HcmV?d00001 diff --git a/c/euler.c b/c/euler.c new file mode 100644 index 0000000..190cf78 --- /dev/null +++ b/c/euler.c @@ -0,0 +1,5 @@ +#include + +void print_result(int result) { + printf("%d\n", result); +} diff --git a/c/euler.h b/c/euler.h new file mode 100644 index 0000000..540c9a1 --- /dev/null +++ b/c/euler.h @@ -0,0 +1 @@ +void print_result(int result); diff --git a/c/euler001.c b/c/euler001.c new file mode 100644 index 0000000..bec72a1 --- /dev/null +++ b/c/euler001.c @@ -0,0 +1,14 @@ +#include "euler.h" + +int main() +{ + int sum = 0; + for (int i = 0; i < 1000; i++) { + if (i % 3 == 0 || i % 5 == 0) { + sum += i; + } + } + + print_result(sum); + return 0; +} diff --git a/c/euler002 b/c/euler002 new file mode 100755 index 0000000000000000000000000000000000000000..e0cb85973991b62b26ce9cfe1b87a45500cc6e61 GIT binary patch literal 9176 zcmeHNZ){sv6~8Y|h-plpvxO11mcCZYXkfIl)Qxzf!fsvVnmTPtvX-q&-x9}eEID!H zKUxb>>&~s%lgTij*aswvgtke1V4nb$iP}lkbe(7e8d{)#Fw+(}R9!PBlC+ib_?`Ez z<3FkRjD(ML|NPE5_uPBWJNMn^dwuoZ?UhExBnxB7I>wlc#2Oeo!xXBqFC%dzRqb(i z?RjC(clQ&wlB7!bKty(Cp{S~Td%o9KsbaLZSMr#^7#j`8NTi{v@xZY-)l90kXJ3cO zKyP>+dCrcZ4q+96I7^uk;wlPCq+`#@W6kwXBXq!DjEIF4$bHb=*X!1FKC$y*y!{J{aDh9e*NwY=PcK*ZJG4dkCZ1ZvmK!A6CT}`zxXHbE zK}t0Fv?Y%=SGWU~N6SmI9_M|xc3qnq&-00f92y;Vzvw>VR{N)l{q^?1+?$Y~Y2k-x zXLfX+I;ylkU9`Va__1MsS(-g{pM8EOb8CM`7dJ5IBQR9>35Kdo7aoO@Bg<14tcT4m zGv!46Yj@G)0JaN9R=d(a{~5O0RTYx+=`Pw@8J{-32>PeW=1cN)m#u$F-jpOAV?GDr zyG5?u=joXB%%ZlC2u<&{(uQ@Ow%Edt&;i#heA>mS2}+kJX$K?RAxi9a23AB#I~2){ z9TKG&7I7JMrY-Q?CyH|+v58OAKdtSy^7OMjH@BJRRyG#CYId8B*=|{Q+QR);Jlc*| z_1!l3rDFWOJypDPt7fxywh{w`6k@U9xa)FIdx2)8LT6j~-tRDt*-$oWeip&kD!HKCSqF0`vfTM8*Oub8jHUh@*QdGj>iEAYCQD(` zZFaG*orqrj+}H2a&NjZz2kL9mR=jrfXVeKufNO2om1l>Uf0#Zu=dV+ZUN7^1 zrW!5Q`Aby$Ce{9cTHDY%7Klb8(PtF=<_a8BB8j*X2`bTn(W3#@Hl!He*&CpaXkm{d z5m8APBn?OwiGIU=3xE>+{v@J0))>C8*RdVuFPHi;=r4fhlEA2AbsaGBQXP|Cf?}qg zNqM~DBqm9lS)J6}RF4_1r6b2WlRud7$Qjng?ngsCl5~ zftm+u9;kVs=7E|AY99Ds^+59$`*Sq5W*1$~8JFSeAe~i2*?}m_u&BM+r3Ryc0M%Pj z9~lUTBYr{(&={_!<3U1O2_@qG;Q^yr2VgW%)I|r9iu>6Hb!1o#91Hjp@c{0~2dJC9 z!O&o2binTq;c7Y_3bXwq1EEpYXPAbKSRx!}&!ZbP9E!zNc7%>bEG*N4Ecr#s9>KL| zXfzaOKb8Cu*kC`C28M>%FQlV^ID12iv0q6;fp8!mVDCtVRd!J_rt}{E_HgzQn8;E# zLsEyjKbDjf#h#TqI+As7*Y#jfL^QbdIF>Em z2h)kIEE(suID292Ndx1~5obDtcM9Bt3s}N?1$GI1Sl}_7IFURo@PhbX!Vd(t3%Mq+ zBHF($@L8e%mcTBd{~LkFaM?@tF9=NctAsBLOc%t2XOU1+)u5Zm%Q2l)mg7&V@KO~P z%B%M1cne2N#+__4%7>61MgqAWBvY7L6+hc3OmIKHHqxp!8U6$zqKe|Bgv=-^VG%tg zh7mm_NO4v|Mktn`8F3{Xt5A+1%&?{q@a9@72E4iEimR=-&Q@30>e^bfYE56U{{VGY BT`m9s literal 0 HcmV?d00001 diff --git a/c/euler002.c b/c/euler002.c new file mode 100644 index 0000000..b8a984b --- /dev/null +++ b/c/euler002.c @@ -0,0 +1,29 @@ +#include "euler.h" +#include "int_list.h" +#include + +int_list *fibonacci_until(int num) +{ + + static int_list list; + int_list_init(&list); + + int term_one = 1; + int term_two = 2; + while (term_one < num) + { + if (term_one % 2 == 0) { int_list_add(&list, term_one); } + int temp = term_two; + term_two = term_two + term_one; + term_one = temp; + } + return &list; +} + +int main() +{ + int_list *result; + result = fibonacci_until(4000000); + print_result(int_list_sum(result)); + return 0; +} diff --git a/c/int_list.c b/c/int_list.c new file mode 100644 index 0000000..3fe1167 --- /dev/null +++ b/c/int_list.c @@ -0,0 +1,82 @@ +#include +#include +#include +#include "int_list.h" + +void int_list_init(int_list *l) { + l->data = NULL; + l->size = 0; + l->count = 0; +} + +int int_list_count(int_list *l) { + return l->count; +} + +void int_list_add(int_list *l, int value) { + if (l->size == 0) { + l->size = 10; + l->data = malloc(sizeof(int*) * l->size); + memset(l->data, '\0', sizeof(int*) * l->size); + } + + if (l->size == l->count) { + l->size *= 2; + l->data = realloc(l->data, sizeof(int*) * l->size); + } + + l->data[l->count] = value; + l->count++; +} + +int int_list_get(int_list *l, int index) { + if (index >= l->count) { + printf("error: index out of range"); + return 0; + } + + return l->data[index]; +} + +void int_list_set(int_list *l, int index, int value) { + if (index >= l->count) { + printf("error: index out of range"); + return; + } + + l->data[index] = value; +} + +void int_list_delete(int_list *l, int index) { + if (index >= l->count) { + printf("error: index out of range"); + return; + } + + int j = index; + for (int i = index; i < l->count; i++) { + l->data[j] = l->data[i]; + j++; + } + + l->count--; +} + +int int_list_sum(int_list *l) { + int sum = 0; + for (int i = 0; i < l->count; i++) { + sum += (l->data[i]); + } + return sum; +} + +void int_list_print(int_list *l) { + for (int i = 0; i < l->count; i++) { + printf("%d ", (l->data[i])); + } + printf("\n"); +} + +void int_list_free(int_list *l) { + free(l->data); +} diff --git a/c/int_list.h b/c/int_list.h new file mode 100644 index 0000000..4d24fb9 --- /dev/null +++ b/c/int_list.h @@ -0,0 +1,20 @@ +#ifndef INT_LIST_H_ +#define INT_LIST_H_ + +typedef struct int_list_ { + int* data; + int size; + int count; +} int_list; + +void int_list_init(int_list *l); +int int_list_count(int_list *l); +void int_list_add(int_list *l, int value); +int int_list_get(int_list *l, int index); +void int_list_set(int_list*l, int index, int value); +void int_list_delete(int_list *l, int index); +int int_list_sum(int_list *l); +void int_list_print(int_list *l); +void int_list_free(int_list *l); + +#endif