/* fact written for the Unix/Linux 'bc' basic calculator */ /* run using bc < fact.bc */ define rfact(n) { if (n==0) return (1); return (n * rfact(n-1)); } define ifact(n) { m=1; while (n > 0) m *= n--; return (m); } define tfact(n,m) { if (n==0) return (m); m *= n--; return (tfact(n,m)); } define fact(n) { return (tfact(n,1)); } fact(10) fact(11) fact(12) fact(13) fact(100) fact(1000) fact(10000)