//   Fibonacci sequence
//   Number in series interactively or via command line argument

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int countFibonacci(int i) {  // Recursive function
    int fibonacci;
    if (i == 0) { return 0; } else if (i == 1) { return 1; }
    
    fibonacci = countFibonacci(i-1) + countFibonacci(i-2);
    return fibonacci;
}

int main(int argc, char *args[]) {
        char delim[3]=", \0";
        int nsize = 0, fibonacci, i;
        
        // Check for argument 1 number in series
        if (argc > 1) {
            for(i=0; i<strlen(args[1]); i++) {
                if (args[1][i] == '-' || (args[1][i] >= '0' && args[1][i] <= '9')) {
                    nsize = nsize;
                } else if (args[0][i] != '-') {
                    nsize--;
                }
            }
            if (nsize == 0) sscanf(args[1], "%d", &nsize);
        }
        if (argc <= 1) { //nsize <= 0) {
            printf("How many numbers are there in your fibonacci sequence (-ve for in a row): ");
            scanf(" %d", &nsize);
        }
        if (nsize > 0) {  strcpy(delim, "\n\0");   }
        
        for (i=0; i<=(int) abs(nsize); i++) {
            fibonacci = countFibonacci(i);
            if (i == (int) abs(nsize)) { printf("%d", fibonacci); } else {  printf("%d%s", fibonacci, delim); }
        }
        printf("\n");
}
