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