如何使用 algorithmicx 包获得没有“until”语句的“repeat”语句

如何使用 algorithmicx 包获得没有“until”语句的“repeat”语句

我想编写一些与下面显示的算法非常相似的东西,但使用 algorithmicx 包。(此示例来自本书第 152 页近端算法作者:Boyd 和 Parikh。)如何使用 algorithmicx 获得没有相应“until”语句的“repeat”语句?

(我特别提到 algorithmicx 包是因为我认为它比其他算法包更具可定制性。)

在此处输入图片描述

答案1

这里有一个选项,用于\algblockdefx定义一个块,然后\algonotext抑制对该块的结束部分进行排版:

\documentclass{article}
\usepackage{algorithmicx,algpseudocode}

\algblockdefx{MRepeat}{EndRepeat}{\textbf{repeat}}{}
\algnotext{EndRepeat}

\begin{document}

\begin{algorithmic}[1]
\State $sum\gets 0$
\State $i\gets 1$
\MRepeat
\State $sum\gets sum+i$
\State $i\gets i+1$
\EndRepeat
\State $i\gets 100$
\end{algorithmic}

\end{document}

在此处输入图片描述

相关内容