Найдите подходящие дроби рационального числа(Используя рекурсию) - Prolog

Узнай цену своей работы

Формулировка задачи:

Вариант 1. Найдите походящие дроби рационального числа X/Y (х – неотрицательно, у – положительно). Например, 5/6=0+1/(1+1/5 ) , то есть для х = 5, у = 6 ответом будет последовательность [0; 1, 5].

Решение задачи: «Найдите подходящие дроби рационального числа(Используя рекурсию)»

textual
Листинг программы
  1. domains
  2. int=integer
  3. intl=int*
  4.  
  5. predicates
  6. pdr(int,int,intl)
  7.  
  8. clauses
  9. pdr(P,Q,[N]) :- P mod Q = 0, P div Q = N, !.
  10. pdr(P,Q,[H|T]) :- H=P div Q, M = P mod Q, pdr(Q,M,T).

Объяснение кода листинга программы

  1. domains определяют типы данных переменных. В данном случае, int - это целочисленный тип данных, а intl - это указатель на целочисленный тип данных.
  2. predicates - это определения отношений между переменными. В данном случае, pdr - это отношение между тремя переменными: P, Q и N.
  3. clauses - это конкретные факты или правила, которые определяют поведение программы. В данном случае, есть два правила для отношения pdr:
    • Если P mod Q равно 0 и P div Q равно N, то отношение pdr между P, Q и N истинно.
    • Если P mod Q не равно 0, то отношение pdr между P, Q и N не истинно. Вместо этого, мы находим значение H, которое равно P div Q, и M, которое равно P mod Q. Затем мы рекурсивно вызываем отношение pdr между Q и M, и добавляем H в список T.

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


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

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

7   голосов , оценка 3.857 из 5

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

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

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