Мне нужно написать предикат, который называется stepup(L, Z, X)
, где L
- это список, а Z
и X
- целые числа. Он должен возвращать true
, если Z
может быть переведен в X
с использованием юридических шагов, заданных пользователем в списке.Как мне создать этот предикат в прологе?
Например
stepup([7, 12, 19], 6, 32)
должна возвращать true
так 6 + 7 + 7 + 12 = 32
стартовый номер всегда должен быть Z
(здесь 6) и правило следует использовать только шаги из списка. Правило должно работать для всех размеров, (Z, X)
всегда положительные.
Я начал с этим
step([V|S],A,D):-
sum is A+V,
(sum=A -> write('true')
; step(S,sum,D).
, но не уверен, как поступить
Возможно, вы могли бы быть более конкретным: что вы сделали до сих пор, и в какой момент вы застряли? –
Я не могу понять, с чего начать! Любая помощь? – jjacks
Является ли это алгоритмом или языком: вы застряли в форме для себя, шаги нужно сделать или застревать при кодировании? –