]]> ]]>

Факториал в TeX

Пример для версий Web2c 2009

Данный пример использует итеративное определение факториала.

В макросе \factorial используются двойные фигурные скобки, т.к. в макросе присутствует цикл, который вызывается внутри другого цикла.

Рассчитываются только факториалы чисел до 12 включительно. Для больших чисел выполнение завершается с ошибкой “Arithmetic overflow”.

\newcount\n \newcount\p \newcount\m

\def\factorial#1{{\m=#1\advance\m by 1
\n=1
\p=1
\loop\ifnum\n<\m \multiply\p by \n \advance\n by 1 \repeat\number\p}}

\def\printfactorials#1{\m=#1\advance\m by 1
\n=0
\loop\ifnum\n<\m \hfil\break\number\n! = \factorial{\n} \advance\n by 1 \repeat}

\printfactorials{12}
\bye

Комментарии

]]>

blog comments powered by Disqus

]]>

Работа программистам