Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Список из сумм 
:(
    Опции темы
Mars30
Дата 13.5.2014, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.5.2014

Репутация: нет
Всего: нет



Помогите реализовать такую задачку на CLisp:
Дан список из n чисел и натуральное число m<n. Для каждой группы из m элементов, которые находятся рядом, вычислить ее сумму. Написать функцию, которая выдает список из всех возможных сумм. Пример: (7142 3), m=3. S= (12 7 9).
PM MAIL   Вверх
_sg
Дата 15.5.2014, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 119
Регистрация: 16.5.2007

Репутация: 2
Всего: 2



Код

(defun sum-by-n-elms (w n)
  (cond ((null (nth (1- n) w)) nil)
  (t (cons (apply #'+ (subseq w 0 n))
           (sum-by-n-elms (cdr w) n)))))

> (sum-by-n-elms '(7 1 4 2 3) 3)
(12 7 9)

Код

(defun sum-by-n-elms (w n)
  (when (nth (1- n) w)
    (cons (apply #'+ (subseq w 0 n))
          (sum-by-n-elms (cdr w) n))))

> (sum-by-n-elms '(7 1 4 2 3) 3)
(12 7 9)


Добавлено через 8 минут и 56 секунд
Код

(defun sum-by-n-elms (w n)
  (loop for d on w
        when (nth (1- n) d)
        collect (apply #'+ (subseq d 0 n))))

> (sum-by-n-elms '(7 1 4 2 3) 3)
(12 7 9)

--------------------
vk.com/ansicommonlisp
PM MAIL   Вверх
Mars30
Дата 17.5.2014, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 6.5.2014

Репутация: нет
Всего: нет



_sg, спасибо smile  жалко не могу вам плюсик поставить
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума LISP
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Lisp — это целое семейство языков. Всегда указывайте в теме используемый диалект (Common Lisp, Scheme и т.д.).
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LISP | Следующая тема »


 




[ Время генерации скрипта: 0.1026 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.