view probation-slide/fact.cbc @ 19:a5dddb751641 default tip

add pdf.
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Fri, 12 Mar 2010 17:24:18 +0900
parents 12cb508ee15d
children
line wrap: on
line source

#include<stdio.h>
#define code __code
#define __return _CbC_return
typedef code (*NEXT)(int,void*);

int main(int argc, char **argv) ;
int factor(int x) ;
code factor0(int prod,int x,NEXT next) ;
code print_fact(int value) ;




int main(int argc, char **argv) {
  int i,a;
  i = atoi(argv[1]);
  a = factor(i);
  printf("%d! = %d\n", a);
}
int factor(int x) {
  goto factor0(1, x, __return);
}
code factor0(int prod,int x,NEXT next) {
  if (x >= 1) {
    goto factor0(prod*x, x-1, next);
  } else {
    goto (*next)(prod,NULL);
  }
}