0 recursion abap towers-of-hanoi
我想在ABAP编写一个河内塔解算器.
这是我目前的代码:
FORM SOLVE USING s1 TYPE c
s2 TYPE c
s3 TYPE c
n TYPE i.
IF n = 1.
"move disc from tower X to tower Y"
WRITE:/ text-001, text-002, s1, text-003, text-002, s3.
ELSE.
PERFORM solve USING s1 s3 s2 n-1. "Here's my problem, n-1 doesn't work"
PERFORM solve USING s1 s2 s3 1.
PERFORM solve USING s2 s1 s3 n-1.
ENDIF.
ENDFORM.
Run Code Online (Sandbox Code Playgroud)
我的问题:
如果我选择了USING类似的参数n-1,SAP会将其识别为(不存在的)结构并向我抛出错误.
有没有办法实现这一目标?
非常感谢.
您需要在运营商之间添加空间.所以你需要输入为n - 1.另一方面,旧版本ABAP不支持内联操作数作为函数/执行参数.如果出现错误,首先将结果分配给新变量,然后将其作为参数传递.