检查数字是否是 4 的倍数

检查数字是否是 4 的倍数

使用etoolboxifthen或其他形式的条件检查,如何检查某个值是否是 4 的倍数?例如,如果数字是 4、8、12、16 等,则返回“true”。

答案1

你可以使用pgfmath以下方法:

\documentclass{article}
\usepackage{pgf}

\begin{document}
\newcommand\ifismultiple[4]{%
    \pgfmathparse{mod(#1,#2)==0}
    \ifnum \pgfmathresult=1
    #3%
    \else
    #4%
    \fi
}
\ifismultiple{15}{4}{true}{false}
\end{document}

答案2

\ifodd就足以做到这一点

\documentclass[]{scrartcl} 

\newcount\myint

\def\IsFourMultiple#1{% 
\myint#1\relax  
\ifodd\myint 
   false
\else 
  \divide\myint by2\relax
  \ifodd\myint
    false 
  \else 
    true
  \fi
\fi}% 

\begin{document} 

\IsFourMultiple{4}    
\IsFourMultiple{32} 
\IsFourMultiple{15} 

\end{document}

答案3

使用 eTeX \numexpr,您可以轻松做到这一点。

\makeatletter
\newcommand{\doifmultipleof}[2]{%
  \ifnum\numexpr((#2)/(#1))*(#1)-(#2)=0
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi}
\makeatother

\documentclass{article}
\begin{document}
  \doifmultipleof{4} {6}{true}{false} % => false
  \doifmultipleof{5}{10}{true}{false} % => true
\end{document}

答案4

\documentclass{minimal} 
\def\IsFourMultiple#1{% 
  \ifdim\dimexpr#1pt/4=\numexpr#1/4pt true\else false\fi}
\begin{document} 

\IsFourMultiple{4}    
\IsFourMultiple{32} 
\IsFourMultiple{15} 

\end{document}

相关内容