200 constant places
create digits   places allot
: 1digits!   digits places 0 fill   1 digits c! ;
: digits.   places digits + begin 1- dup c@ 0<> until
  begin dup c@ [char] 0 + emit 1- dup digits 1- = until drop ;
: *+ ( a n c -- a+1 n c' )
  >r over c@ over * r> + 10 /mod ( a n d c' )
  >r >r over r> swap c! r> ( a n c' ) 
  rot 1+ -rot ;
: digits* ( n -- ) digits swap 0 places 1- for *+ next 2drop drop ;
: factorial ( n -- ) 1digits! 1 swap 1- for dup digits* 1+ next drop ;
." COMPUTED: " 100 factorial digits. cr