Определить предикат n_cif (C, N), истинный, когда C является N-ой справа цифрой числа Х - Prolog
Формулировка задачи:
определить предикат n_cif (C,N),истинный тогда и только тогда,когда C является N-ой справа цифрой числа Х
Решение задачи: «Определить предикат n_cif (C, N), истинный, когда C является N-ой справа цифрой числа Х»
textual
Листинг программы
predicates dig(integer,integer,integer) clauses dig(X,1,M) :- M=X mod 10. dig(X,N,M) :- N>1, X1=X div 10, N1=N-1, dig(X1,N1,M).
Объяснение кода листинга программы
В данном коде определён предикат dig(X,N,M), который проверяет, является ли X N-ой справа цифрой числа Х. Код рекурсивно разбивает число на части до тех пор, пока не будет достигнуто число, которое можно поделить на 10 без остатка (это будет первая цифра числа). В этом случае проверяется, является ли остаток от деления равным N-ой цифре. Если это так, то предикат считается истинным. В противном случае, код продолжает разбивать число на части до тех пор, пока не будет достигнуто число, которое можно поделить на 10 без остатка. Если это так, то предикат считается ложным.