Проверка условия перед запуском рекурсии - Prolog
Формулировка задачи:
Здравствуйте. Помогите разобраться. Задача такая: вводится число. Найти сумму квадратов нечетных чисел. Программа работает, если вводится нечетное число, код несложный. Но я захотела усовершенствовать задачу: проверить что это за число и если оно нечетное (то есть A mod 2<>0), то запустить рекурсию, а если четное, то вычислить ближайшее нечетное и потом запустить рекурсию. В Паскале получается без проблем, но вот в Прологе(Swipl)... Это можно как-то реализовать или нет? Помогите - очень сложно переходить с одного стиля программирования на другой. Где-то "затык".
Рекурсия
Листинг программы
- sum(1,1): - !.
- sum(A,S):- A1 is A-2, sum(A1,S1), S is S1+A*A. (N – нечетное).
Решение задачи: «Проверка условия перед запуском рекурсии»
textual
Листинг программы
- sum(A,S) :-
- A mod 2 =:= 0,
- !,
- A1 is A-1,
- sum(A1, S).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д