我如何检查后记中的偶数或奇数

时间:2014-09-07 21:52:10

标签: math stack postscript modulus

我正在尝试检查堆栈顶部的数字是偶数还是奇数而不影响我的堆栈,因为我在递归函数中使用它。我也尝试加倍弹出,但这段代码仍然混淆了这个功能。

dup 2 0 mod eq 
{ 0 0 0 setrgpcolor}
{0.6 0.6 0.6 setrgpcolor}ifelse
pop 

1 个答案:

答案 0 :(得分:3)

你的参数顺序错了。一次一步(假设顶部堆栈编号为123):

123
dup 2 0 mod eq

执行dup

123 123 2 0 mod eq

mod(!)

上执行2 0
123 123 --undefined-- eq

并且eq太少,太晚了......

交换2个操作数以获得正确的结果:

dup 2 mod 0 eq
{ .. number is even ..}
{ .. number is odd ..} ifelse

(注: setrgpcolor是拼写错误,还是真的有一个名为so的颜色模型?)