some c solutions
							parent
							
								
									1b114ac272
								
							
						
					
					
						commit
						a15137d2bb
					
				
										
											Binary file not shown.
										
									
								
							|  | @ -0,0 +1,5 @@ | |||
| #include <stdio.h> | ||||
| 
 | ||||
| void print_result(int result) { | ||||
|   printf("%d\n", result); | ||||
| } | ||||
|  | @ -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; | ||||
| } | ||||
										
											Binary file not shown.
										
									
								
							|  | @ -0,0 +1,29 @@ | |||
| #include "euler.h" | ||||
| #include "int_list.h" | ||||
| #include <stdio.h> | ||||
| 
 | ||||
| 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; | ||||
| } | ||||
|  | @ -0,0 +1,82 @@ | |||
| #include <stdlib.h> | ||||
| #include <string.h> | ||||
| #include <stdio.h> | ||||
| #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); | ||||
| } | ||||
|  | @ -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 | ||||
		Loading…
	
		Reference in New Issue