Программирование на языке Пролог для искусственного интеллекта



         

Решение числового ребуса с использованием nonvar - часть 5


                0, 0,

                            % Перенос справа и перенос влево равны 0

                [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], _ ).

                            % Все цифры доступны

сумма1( [ ], [ ], [ ], 0, 0, Цифры, Цифры).

сумма1( [D1 | N1], [D2 | N2], [D | N], C1, С, Циф1, Циф) :-

        сумма1( Nl, N2, N, C1, C2, Циф1, Циф2),

        суммацифр( Dl, D2, C2, С, Циф2, Циф).

суммацифр( Dl, D2, C1, D, С, Циф1, Циф) :-

        удалить( D1, Циф1, Циф2),

                                    % Выбор доступной цифры для D1

        удалить( D2, Циф2, Циф3),

                                    % Выбор доступной цифры для D2

        удалить( D, Циф3, Циф),

                                    % Выбор доступной цифры для D

        S is D1 + D2 + C1,

        D is S mod 10,

        С is S div 10.




Содержание  Назад  Вперед