diff --git a/solutions/c/collatz-conjecture/1/collatz_conjecture.c b/solutions/c/collatz-conjecture/1/collatz_conjecture.c new file mode 100644 index 0000000..611a557 --- /dev/null +++ b/solutions/c/collatz-conjecture/1/collatz_conjecture.c @@ -0,0 +1,13 @@ +#include "collatz_conjecture.h" + +int steps(int start) +{ + if (start <= 0) + return ERROR_VALUE; + if (start == 1) + return (0); + if (start % 2 == 0) + return (steps(start / 2) + 1); + else + return (steps(start * 3 + 1) + 1); +} \ No newline at end of file diff --git a/solutions/c/collatz-conjecture/1/collatz_conjecture.h b/solutions/c/collatz-conjecture/1/collatz_conjecture.h new file mode 100644 index 0000000..66b3e4b --- /dev/null +++ b/solutions/c/collatz-conjecture/1/collatz_conjecture.h @@ -0,0 +1,8 @@ +#ifndef COLLATZ_CONJECTURE_H +#define COLLATZ_CONJECTURE_H + +#define ERROR_VALUE -1 + +int steps(int start); + +#endif