Restructuring
This commit is contained in:
BIN
solutions/Generic/Fibonacci/a.exe
Normal file
BIN
solutions/Generic/Fibonacci/a.exe
Normal file
Binary file not shown.
51
solutions/Generic/Fibonacci/solve.c
Normal file
51
solutions/Generic/Fibonacci/solve.c
Normal file
@ -0,0 +1,51 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#define SIZE 20
|
||||
|
||||
|
||||
|
||||
void add(char *a, char *b, char *result, int size) {
|
||||
int i = 0;
|
||||
for(i=0;i<size;i++) {
|
||||
//We have overflow!
|
||||
if((a[i] + b[i] + result[i] < a[i]) || (a[i] + b[i] + result[i] < b[i])) {
|
||||
result[i+1]++;
|
||||
}
|
||||
result[i]+= a[i] + b[i];
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
int main( )
|
||||
{
|
||||
unsigned char prev[SIZE];
|
||||
unsigned char current[SIZE];
|
||||
unsigned char next[SIZE];
|
||||
unsigned int i=0;
|
||||
memset(prev,0x00,SIZE);
|
||||
memset(current,0x00,SIZE);
|
||||
memset(next,0x00,SIZE);
|
||||
prev[0]=1;
|
||||
current[0]=1;
|
||||
next[0]=1;
|
||||
|
||||
for(i=2;i<100;i++) {
|
||||
|
||||
add(current,prev,next,SIZE);
|
||||
memcpy(prev,current,SIZE);
|
||||
memcpy(current,next,SIZE);
|
||||
//prev = current;
|
||||
//current = next;
|
||||
int j;
|
||||
for(j=0;j<SIZE;j++) {
|
||||
printf("%d: %i\n",j,current[j]);
|
||||
}
|
||||
}
|
||||
|
||||
for(i=0;i<SIZE;i++) {
|
||||
printf("%d: %i\n",i,current[i]);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
BIN
solutions/Generic/Fibonacci/solve.exe
Normal file
BIN
solutions/Generic/Fibonacci/solve.exe
Normal file
Binary file not shown.
Reference in New Issue
Block a user