Mercurial > hg > Members > nobuyasu > CbC
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 |
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 } |