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