\documentclass{ctexart}
\usepackage{tikz}

\begin{document}

问题来自：http://kuing.orzweb.net/viewthread.php?tid=4027

以下代码设计得很粗糙，存在很大的改进空间，但由于时间关系我暂时懒得想太多，
故此改进就靠你了，搞点计算、循环什么的应该能够更加自动化，
而不用像现在这样自己打那么多数字。

\newcount\dch%行
\newlength\dcgao%高
\setlength\dcgao{3ex}%
\newlength\dckuan%宽
\setlength\dckuan{4.5em}%需自行估计首行的长度

\newcommand\dc[3]{%\dc{被除数}{除数}{余数}
\draw(0,-0.5*\dcgao-\dch*\dcgao)
--++(-\dckuan+\dch*0.5em,0)
--node[left]{#2}++(0,\dcgao);
\node[left] at (-0.2em,-\dch*\dcgao) {#1};
\node at (2em,-\dch*\dcgao) {#3};
\advance\dch by 1}

\newcommand\dcend[1]{%最后那个余数和箭头
\node[left] at (-0.2em,-\dch*\dcgao) {0};
\node at (2em,-\dch*\dcgao) {#1};
\draw[->] (1.5em,-\dch*\dcgao-1.5ex)
--++(2em,0)--++(0,\dch*\dcgao);}

\begin{tikzpicture}
\dc{89}2{余数}
\dc{44}21
\dc{22}20
\dc{11}20
\dc521
\dc221
\dc120
\dcend1
\dch=0%用完后最好将\dch清零以便下次使用
\end{tikzpicture}

\end{document}

