view 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 source

#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;
}