annotate paper/sources/factorial.cbc @ 10:3d9addf62d0b

organized repository.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Tue, 16 Feb 2010 14:35:36 +0900
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 code print_factorial(int prod) {
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 printf("factorial = %d\n", prod);
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 exit(0);
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 }
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
5
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 code factorial0(int prod, int x) {
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 if (x >= 1) {
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 goto factorial0(prod*x, x-1);
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
9 } else {
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 goto print_factorial(prod);
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 }
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 }
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 code factorial(int x) {
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
15 goto factorial0(1, x);
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 }
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
17
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 int main(int argc, char **argv) {
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 int i;
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 i = atoi(argv[1]);
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
21
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 goto factorial(i);
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 }
3d9addf62d0b organized repository.
kent <kent@cr.ie.u-ryukyu.ac.jp>
parents:
diff changeset
24