view fibonacci/dynamic-fibonacci.cbc @ 21:42f3a796c0be draft

add dynamic-fibonacci.cbc
author Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
date Tue, 07 Aug 2012 19:13:10 +0900
parents
children
line wrap: on
line source

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

__code print(int result)
{
	printf("result = %d\n",result);
	exit(0);
}

__code fibonacci1(int result, int num1, int num2, int loop)
{
	
	if (loop < 2) goto print(result);
 	result = num1 + num2;
	num1 = num2;
	num2 = result;

	loop--;
	goto fibonacci1(result, num1, num2, loop);
}


__code fibonacci(n)
{
	goto fibonacci1(0, 0, 1, n);
}

int main(int argc, char* argv[])
{
	if (argc < 2) {
		printf("usage: ./fibonacci number \n");
		exit(0);
	}
	int n = atoi(argv[1]);
	goto fibonacci(n);

	return 0;
}