annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
21
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #include <stdio.h>
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #include <stdlib.h>
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 __code print(int result)
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 {
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 printf("result = %d\n",result);
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 exit(0);
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 }
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 __code fibonacci1(int result, int num1, int num2, int loop)
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 {
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 if (loop < 2) goto print(result);
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 result = num1 + num2;
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 num1 = num2;
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 num2 = result;
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 loop--;
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 goto fibonacci1(result, num1, num2, loop);
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 }
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 __code fibonacci(n)
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 {
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 goto fibonacci1(0, 0, 1, n);
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 }
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 int main(int argc, char* argv[])
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 {
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 if (argc < 2) {
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 printf("usage: ./fibonacci number \n");
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 exit(0);
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 }
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 int n = atoi(argv[1]);
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 goto fibonacci(n);
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 return 0;
42f3a796c0be add dynamic-fibonacci.cbc
Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 }