Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 01.09.2016
Сообщений: 6
1

Если первый и последний элементы списка чётные - то поменять их местами. Иначе поменять местами голову и хвост списка

11.04.2018, 18:22. Просмотров 1135. Ответов 2
Метки нет (Все метки)


Дан список. Если первый и последний элементы списка чётные - то поменять их местами. Иначе поменять местами голову и хвост списка.
Пример: '(0 8 3 4 1 6 2) -> '(2 8 3 4 1 6 0)
'(1 5 3 2 7 8) -> '((5 3 2 7 8) 1)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.04.2018, 18:22
Ответы с готовыми решениями:

Поменять местами первый и последний элементы списка
Создать файл целых чисел. Разместить элементы файла в динамической памяти. Поменять местами первый...

Поменять местами первый и последний элементы списка.
написать программу, которая вызывает из модуля подпрограмму, которая меняет местами первый и...

Поменять местами первый и последний элементы списка
Форумчане пожалуйста кому не лень помогите решить задачу. Решить задачу по обработке файлов...

Поменять местами первый и последний элементы списка
Доброго времени суток, господа, помогите пожалуйста разобраться с этим не понятным мне ЯП.. есть...

2
Модератор
Эксперт Python
28370 / 15270 / 3010
Регистрация: 12.02.2012
Сообщений: 24,994
Записей в блоге: 4
12.04.2018, 09:11 2
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(defun task (lst)
  (if (and (evenp (car lst)) (evenp (car (last lst))))
       (append (list (car (last lst))) (cdr lst) (list (car lst)))
       (cons (cdr lst) (list (car lst)))))
 
==> TASK
 
(task '(0 8 3 4 1 6 2))
 
==> (2 8 3 4 1 6 2 0)
 
(task '(1 5 3 2 7 8))
 
==> ((5 3 2 7 8) 1)
1
4478 / 4192 / 350
Регистрация: 12.05.2012
Сообщений: 2,952
12.04.2018, 09:42 3
как вариант:
Lisp
1
2
3
4
5
6
7
8
9
(defun modify (w &aux (a (car w)) (z (car (last w))))
  (if (and (evenp a) (evenp z))
      (append (list z) (butlast (cdr w)) (list a))
      (cons (cdr w) (list a))))
 
> (modify '(0 8 3 4 1 6 2))
(2 8 3 4 1 6 0)
> (modify '(1 5 3 2 7 8))
((5 3 2 7 8) 1)
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
8
9
(defun modify (w &aux (a (car w)) (z (last w)))
  (if (and (evenp a) (evenp (car z)))
      (append z (butlast (cdr w)) (list a))
      (cons (cdr w) (list a))))
 
> (modify '(0 8 3 4 1 6 2))
(2 8 3 4 1 6 0)
> (modify '(1 5 3 2 7 8))
((5 3 2 7 8) 1)
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
8
9
(defun modify (w &aux (a (car w)) (d (cdr w)) (z (last w)))
  (if (and (evenp a) (evenp (car z)))
      (append z (butlast d) (list a))
      (cons d (list a))))
 
> (modify '(0 8 3 4 1 6 2))
(2 8 3 4 1 6 0)
> (modify '(1 5 3 2 7 8))
((5 3 2 7 8) 1)
Добавлено через 10 минут
Lisp
1
2
3
4
5
6
7
(defun modify (w &aux (a (car w)) (d (cdr w)) (z (car (last w))))
   (nconc (if (every #'evenp (list a z)) (cons z (butlast d)) `(,d)) `(,a)))
 
> (modify '(0 8 3 4 1 6 2))
(2 8 3 4 1 6 0)
> (modify '(1 5 3 2 7 8))
((5 3 2 7 8) 1)
Добавлено через 57 секунд
Lisp
1
2
3
4
5
6
7
(defun modify (w &aux (a (car w)) (d (cdr w)) (z (car (last w))))
   (nconc (if (every #'evenp `(,a ,z)) (cons z (butlast d)) `(,d)) `(,a)))
 
> (modify '(0 8 3 4 1 6 2))
(2 8 3 4 1 6 0)
> (modify '(1 5 3 2 7 8))
((5 3 2 7 8) 1)
Добавлено через 1 минуту
Lisp
1
2
3
4
5
6
7
(defun modify (w &aux (a (car w)) (d (cdr w)) (z (car (last w))))
   (nconc (if (some #'oddp `(,a ,z)) `(,d) (cons z (butlast d))) `(,a)))
 
> (modify '(0 8 3 4 1 6 2))
(2 8 3 4 1 6 0)
> (modify '(1 5 3 2 7 8))
((5 3 2 7 8) 1)
Добавлено через 2 минуты
Lisp
1
2
3
4
5
6
7
8
9
(defun modify (w &aux (a (car w)) (d (cdr w)) (z (last w)))
   (nconc (if (some #'oddp (cons a z)) `(,d)
              (cons (car z) (butlast d)))
          `(,a)))
 
> (modify '(0 8 3 4 1 6 2))
(2 8 3 4 1 6 0)
> (modify '(1 5 3 2 7 8))
((5 3 2 7 8) 1)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.04.2018, 09:42

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Поменять местами первый и последний элементы непустого списка
Тема: динамические структуры: списки и очереди C++ Поменять местами первый и последний элементы...

Поменять местами первый и последний элементы непустого списка
Доброго времени суток.Прошу помощи в решении задачи,с использованием стека :) Программам меняет...

Поменять местами первый и последний элементы списка и удалить их средне арифметическое
Помогите решить задачи пожалуйста!!! 1)Дан список, содержащие числовые данные. Поменять местами...

Создать динамический список, поменять местами последний и первый элементы списка, предпоследний и второй и т.д.
Всем привет. Подкиньте идею, весь мозг сломал. Задание:Создать динамический список. Поменять...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.