【发布时间】:2014-09-07 21:52:09
【问题描述】:
我正在尝试检查堆栈顶部的数字是偶数还是奇数,而不影响我的堆栈,因为我在递归函数中使用它。我也尝试过双重弹出,但这段代码仍然把函数弄乱了。
dup 2 0 mod eq
{ 0 0 0 setrgpcolor}
{0.6 0.6 0.6 setrgpcolor}ifelse
pop
【问题讨论】:
标签: math stack postscript modulus
我正在尝试检查堆栈顶部的数字是偶数还是奇数,而不影响我的堆栈,因为我在递归函数中使用它。我也尝试过双重弹出,但这段代码仍然把函数弄乱了。
dup 2 0 mod eq
{ 0 0 0 setrgpcolor}
{0.6 0.6 0.6 setrgpcolor}ifelse
pop
【问题讨论】:
标签: math stack postscript modulus
你弄错了参数的顺序。一步一步(假设栈顶号为123):
123
dup 2 0 mod eq
做dup:
123 123 2 0 mod eq
在2 0 上执行mod (!)
123 123 --undefined-- eq
而eq 太少了,太晚了......
交换两个操作数以获得正确的结果:
dup 2 mod 0 eq
{ .. number is even ..}
{ .. number is odd ..} ifelse
(注意:
setrgpcolor 是错字吗,还是真的有这样命名的颜色模型?)
【讨论】: