Сумма элементов матрицы равных сумме индексов соответствующих строк и столбцов - Lisp
Формулировка задачи:
Найти сумму всех элементов матрицы, которые равны сумме индексов соответствующих строк и столбцов.
Решение задачи: «Сумма элементов матрицы равных сумме индексов соответствующих строк и столбцов»
textual
Листинг программы
(defun task (matr) (let ((n (- (length matr) 1)) (m (- (length (car matr)) 1))) (apply '+ (apply 'append (mapcar (lambda (row i) (mapcar (lambda (x j) (if (= x (+ i j)) x 0)) row (range 0 m))) matr (range 0 n)))))) ==> TASK (task '((0 1 2 3) (1 2 3 4) (2 3 4 5) (3 4 5 6))) ==> 48
Объяснение кода листинга программы
В коде определена функция TASK, которая принимает на вход матрицу. Функция использует цикл, чтобы пройти по всем элементам матрицы. В каждой строке используется вложенный цикл, который проходит по всем элементам строки. Если элемент равен сумме индексов строки и столбца, то он добавляется к результату. В конце функция применяет операцию сложения к результату и возвращает его. Пример использования функции: (task '((0 1 2 3) (1 2 3 4) (2 3 4 5) (3 4 5 6)))
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д