gpt4 book ai didi

dc:如何弹出(并丢弃)堆栈的顶部数字?

转载 作者:行者123 更新时间:2023-12-05 01:08:21 24 4
gpt4 key购买 nike

在 dc 中,如何从堆栈顶部弹出和丢弃一个数字?包含三个项目的堆栈 ( 1 2 3 ) 应该变成包含两个项目的堆栈 ( 2 3 )。目前我正在将数字推到另一个堆栈(Sz)上,但这似乎很蹩脚。

最佳答案

有多种方法可以删除堆栈顶部,但它们都有副作用。删除没有副作用的元素需要您避免包含的副作用。

要在没有副作用的情况下移除栈顶,请确保栈顶为数字,然后运行 ​​d!=z .如果堆栈有 [5],则执行以下操作

  • 从要删除的项目开始。 Stack: [5]
  • 复制栈顶。 Stack: [5,5]
  • 弹出顶部 2 并测试它们是否不相等:5 != 5 Stack: []
  • 如果测试通过(它不能),运行 z Stack: []

  • 为了确保栈顶是一个数字,我使用 Z这将计算字符串的长度或数字中的位数并将其推回。还有其他选项,例如 X。任何可以从任何东西中提取数字的东西都可以使用,以便与 != 兼容。

    因此,在所有情况下复制粘贴的完整答案如下:
    Zd!=r

    我通常把它放在寄存器 D 中(用于 Drop):
    [Zd!=r]sD

    然后我就可以跑了
    lDx

    关于dc:如何弹出(并丢弃)堆栈的顶部数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17245664/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com