作为我学习Prolog的另一个副业,我想知道是否有解决这个问题的方法。我正在尝试编写一个程序,它将一组数字作为输入,并在它们之间添加数学运算符,以使数学表达式有效。例如:输入:5 1 6 11输出: 5*1+6=11
如果无法添加数学运算符以创建有效的数学表达式,则程序将仅输出一条消息,如“没有数学运算符的可能组合”。我感谢所有的回答。
发布于 2020-04-04 15:42:04
operator(S, X, Y, R) :- S == '+', R is X + Y, !.
operator(S, X, Y, R) :- S == '-', R is X - Y, !.
operator(S, X, Y, R) :- S == '*', R is X * Y, !.
operator(S, X, Y, R) :- S == '/', R is X / Y, !.
operation(_, [], R, R) :- !.
operation([], _, R, R) :- !.
operation([O|List], [N1|List2], A, R):- operator(O, A, N1, R2), operation(List, List2,
R2, R).
要对其进行测试:
operation(['+', '*', '-', '/'], [1, 2, 3, 4], 0, R).
回答
R= -0.25。
希望这对你有用!
https://stackoverflow.com/questions/60850108
复制相似问题