Преобразование пар, в список цифр, из которых состоит число - 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]." Нашел на форуме реализацию обратного:
Листинг программы
  1. p(A,B):-q([1|A],B).
  2. q([N,C,C|Tail],Ans):-!,N1 is N+1,q([N1,C|Tail],Ans).
  3. q([N,C1,C2|Tail],[N,C1|NewTail]):-q([1,C2|Tail],NewTail).
  4. q([N,C],[N,C]).

Решение задачи: «Преобразование пар, в список цифр, из которых состоит число»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. app(intl,intl,intl)
  7. infl(int,int,intl)
  8. task(intl,intl)
  9.  
  10. clauses
  11. app([],X,X).
  12. app([H|R],X,[H|T]) :- app(R,X,T).
  13.  
  14. infl(1,X,[X]):- !.
  15. infl(N,X,[X|R]) :- N1=N-1, infl(N1,X,R).
  16.  
  17. task([],[]).
  18. task([C,N|R],T) :- infl(C,N,H), task(R,Z), app(H,Z,T).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы