Преобразование пар, в список цифр, из которых состоит число - Prolog
Формулировка задачи:
Привет.
Реализацию найти не могу, а написать самому ума не хватает.
Задание:
"Большие целые числа могут быть представлены в виде: [n1, c1, n2, c2, … nk, ck] , где ni – количество повторений цифры ci. Написать программу, которая преобразует число, заданное в виде списка вышеописанных пар, в список цифр, из которых состоит число.
Например: [4, 1, 1, 2, 2, 3, 2, 5, 3, 0] ® [1, 1, 1, 1, 2, 3, 3, 5, 5, 0, 0, 0]."
Нашел на форуме реализацию обратного:
Листинг программы
- p(A,B):-q([1|A],B).
- q([N,C,C|Tail],Ans):-!,N1 is N+1,q([N1,C|Tail],Ans).
- q([N,C1,C2|Tail],[N,C1|NewTail]):-q([1,C2|Tail],NewTail).
- q([N,C],[N,C]).
Решение задачи: «Преобразование пар, в список цифр, из которых состоит число»
textual
Листинг программы
- domains
- int=integer
- intl=int*
- predicates
- app(intl,intl,intl)
- infl(int,int,intl)
- task(intl,intl)
- clauses
- app([],X,X).
- app([H|R],X,[H|T]) :- app(R,X,T).
- infl(1,X,[X]):- !.
- infl(N,X,[X|R]) :- N1=N-1, infl(N1,X,R).
- task([],[]).
- task([C,N|R],T) :- infl(C,N,H), task(R,Z), app(H,Z,T).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д