Mercurial > hg > Members > nobuyasu > CbC
diff fibonacci/fibonacci2.c @ 12:774d70d1ea62 draft
add fibonacci
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 04 Jun 2012 02:45:53 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fibonacci/fibonacci2.c Mon Jun 04 02:45:53 2012 +0900 @@ -0,0 +1,37 @@ +#include <stdio.h> +#include <stdlib.h> + +long unsigned int fibonacci(long unsigned int num, long unsigned int count, long unsigned int result, long unsigned int prev) { + if (count == 0) { + result += 0; + count++; + } else if (count == 1) { + result += 1; + count++; + } else if (count > 1) { + long unsigned int tmp = prev; + prev = result; + result = result + tmp; + count++; + } else { + printf("please enter nutural number\n"); + exit(0); + } + if (num < count) + return result; + return fibonacci(num, count, result, prev); + +} + + +int main(int argc, char* argv[]) { + long unsigned int num = (long unsigned int)atoi(argv[1]); +// long unsigned int result = fibonacci(num, 0, 0, 0); + long unsigned int i; + for (i=0; i <= num; i++) { + long unsigned int result = fibonacci(i, 0, 0, 0); + printf("fibonacci(%ld) = %ld\n",i,result); + } + + return 0; +}