Mercurial > hg > Papers > 2010 > kent-master
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/paper/sources/factorial.cbc Tue Feb 16 14:35:36 2010 +0900 @@ -0,0 +1,24 @@ +code print_factorial(int prod) { + printf("factorial = %d\n", prod); + exit(0); +} + +code factorial0(int prod, int x) { + if (x >= 1) { + goto factorial0(prod*x, x-1); + } else { + goto print_factorial(prod); + } +} + +code factorial(int x) { + goto factorial0(1, x); +} + +int main(int argc, char **argv) { + int i; + i = atoi(argv[1]); + + goto factorial(i); +} +