gpt4 book ai didi

stack - 如何弹出堆栈中的第 N 个项目 [Befunge-93]

转载 作者:行者123 更新时间:2023-12-04 03:02:28 26 4
gpt4 key购买 nike

如果您有 befunge 程序 321& , 你将如何访问第一项 (3) 而不丢弃后两项?

指令\允许一个人切换前两个项目,但这并没有让我更接近最后一个......

我目前使用的方法是使用 p命令将整个堆栈写入程序存储器以到达最后一项。例如,

32110p20p.20g10g@

但是,我觉得这并没有想象中的那么优雅......没有技术可以像N一样弹出堆栈中的第一个项目,从堆栈中弹出第N个项目并将其推到顶部?

(否是一个完全可以接受的答案)

最佳答案

并不真地。
您的代码可以缩短为

32110p\.10g@

但是如果你想要一个更一般的结果,像下面这样的东西可能会奏效。下面,我正在使用 Befunge,因为它应该被使用(至少在我看来):作为一种函数式编程语言,每个函数都有自己的一组行和列。使用方向和存储创建指针 1的和 0确定函数被调用的位置。不过,我要指出的一件事是,该堆栈并非用于几乎任何语言的存储。只需将堆栈写入存储即可。请注意 987从长度为 10 的堆栈溢出。
v           >>>>>>>>>>>12p:10p11pv
1 0 v<<<<<<<<<<<<<<<<<<
v >210gp10g1-10p^
>10g|
>14p010pv
v<<<<<<<<<<<<<<<<<<<<<<<<
v >210g1+g10g1+10p^
>10g11g-|
v g21g41<
v _ v
>98765432102^>. 2^>.@

上面的代码将堆栈上的第 n-1 个项目写入并包括到“内存”,将第 n 个项目写入其他地方,读取“内存”,然后将第 n 个项目压入堆栈。
该函数被该程序的底线调用了两次。

关于stack - 如何弹出堆栈中的第 N 个项目 [Befunge-93],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25332644/

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