% longdiv.tex v.1 (1994) Donald Arseneau % % Work out and print integer long division problems. Use: % \longdiv{numerator}{denominator} % The numerator and denominator (divisor and dividend) must be integers, and % the quotient is an integer too. \longdiv leaves a remainder. % Use this in any type of TeX. \newcount\gpten % (global) power-of-ten -- tells which digit we are doing \countdef\rtot2 % running total -- remainder so far \countdef\LDscratch4 % scratch \def\longdiv#1#2{% \vtop{\normalbaselines \offinterlineskip \setbox\strutbox\hbox{\vrule height 2.1ex depth .5ex width0ex}% \def\showdig{$\underline{\the\LDscratch\strut}$\cr\the\rtot\strut\cr \noalign{\kern-.2ex}}% \global\rtot=#1\relax \count0=\rtot\divide\count0by#2\edef\quotient{\the\count0}%\show\quotient % make list macro out of digits in quotient: \def\temp##1{\ifx##1\temp\else \noexpand\dodig ##1\expandafter\temp\fi}% \edef\routine{\expandafter\temp\quotient\temp}% % process list to give power-of-ten: \def\dodig##1{\global\multiply\gpten by10 }\global\gpten=1 \routine % to display effect of one digit in quotient (zero ignored): \def\dodig##1{\global\divide\gpten by10 \LDscratch =\gpten \multiply\LDscratch by##1% \multiply\LDscratch by#2% \global\advance\rtot-\LDscratch \relax \ifnum\LDscratch>0 \showdig \fi % must hide \cr in a macro to skip it }% \tabskip=0pt \halign{\hfil##\cr % \halign for entire division problem $\quotient$\strut\cr #2$\,\overline{\vphantom{\big)}% \hbox{\smash{\raise3.5\fontdimen8\textfont3\hbox{$\big)$}}}% \mkern2mu \the\rtot}$\cr\noalign{\kern-.2ex} \routine \cr % do each digit in quotient }}} \endinput % Demonstration below: \noindent Here are some long division problems \indent \longdiv{12345}{13} \quad \longdiv{123}{1234} \quad \longdiv{31415926}{2} \quad \longdiv{81}{3} \quad \longdiv{1132}{99} \quad \longdiv{86491}{94} \bye