Das geht gut:
int fac (int x) { if (x>0) { return x * fac (x-1); } else { return 1; } }
aber das nicht (in Java usw.):
int if_positive (int x, int j, int n) { if (x > 0) { return j; } else { return n;} } int fac (int x) { return if_positive (x, x*fac(x-1), 1); }
(welche Lösung/Hack in C?)