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

каждый нечетный элемент списка умножить на 2, каждый четный на 3. использовать только рекурсию CAR,CDR,COND,CONS

14.12.2013, 10:42. Показов 1114. Ответов 5
Метки нет (Все метки)

каждый нечетный элемент списка умножить на 2, каждый четный на 3. использовать только рекурсию CAR,CDR,COND,CONS
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.12.2013, 10:42
Ответы с готовыми решениями:

Заменить каждый второй элемент списка на 0,используя только рекурсию, CAR, CDR, CONS,COND
Заменить каждый второй элемент списка на 0,используя только рекурсию, CAR, CDR, CONS,COND

Каждый нечетный элемент списка умножить на 2, каждый четный на 3
сначало пытаюсь написать хотя бы проверку на четность и умножение на 3. (defun четность (l) ...

Каждый четный элемент массива умножить на минимальный элемент, а нечетный на максимальный
В одномерном массиве, состоящем из n целых элементов, каждый четный элемент умножить на минимальный...

Заполнить массив: каждый четный элемент равен нулю, каждый нечетный - значению его индекса
заполнить массив А следующим образом:каждый четный элемент массива равен нулю каждый не четный...

5
1045 / 939 / 107
Регистрация: 04.11.2012
Сообщений: 971
Записей в блоге: 3
14.12.2013, 12:21 2
Lisp
1
2
3
4
5
6
7
8
(defun F (ls)
  (if ls
    (cons (cond
            ((oddp (car ls)) (* (car ls) 2))
            (t (* (car ls) 3))) (F (cdr ls)))))
 
> (F '(1 2 3 4 5 6 7 8 9 10))
(2 6 6 12 10 18 14 24 18 30)
0
defun
603 / 617 / 44
Регистрация: 30.04.2011
Сообщений: 702
14.12.2013, 12:27 3
Лучший ответ Сообщение было отмечено как решение

Решение

Lisp
1
2
3
4
5
6
(defun f (l)
           (if l
               (cons (if (oddp (car l))
                         (* (car l) 3)
                         (* (car l) 2))
                     (f (cdr l)))))
Добавлено через 2 минуты

Не по теме:

Lambdik, практически синхронистичность)) ты тоже только проснулся?))

2
1045 / 939 / 107
Регистрация: 04.11.2012
Сообщений: 971
Записей в блоге: 3
14.12.2013, 12:31 4
Цитата Сообщение от transformator.t Посмотреть сообщение
ты тоже только проснулся?

Не по теме:

Не я только освободился. Сегодня маленький семейный праздник, так что я не надолго.

0
4533 / 4239 / 359
Регистрация: 12.05.2012
Сообщений: 2,981
14.12.2013, 14:30 5
Lisp
1
2
3
4
5
6
(defun odd*2-even*3 (w &aux (a (car w)))
  (when w (cons (* a (if (oddp a) 2 3))
                (odd*2-even*3 (cdr w)))))
 
> (odd*2-even*3 '(3 -7 0 5 -4))
(6 -14 0 10 -12)
Добавлено через 5 минут
Lisp
1
2
3
4
5
6
(defun odd*2-even*3 (w)
  (when w (cons (* (car w) (if (oddp (car w)) 2 3))
                (odd*2-even*3 (cdr w)))))
 
> (odd*2-even*3 '(3 -7 0 5 -4))
(6 -14 0 10 -12)
Добавлено через 3 минуты
Lisp
1
2
3
4
5
(defun odd*2-even*3 (w)
  (mapcar #'(lambda (a) (* a (if (oddp a) 2 3))) w))
 
> (odd*2-even*3 '(3 -7 0 5 -4))
(6 -14 0 10 -12)
Добавлено через 1 минуту
Lisp
1
2
3
4
5
(defun odd*2-even*3 (w)
  (loop for a in w collect (* a (if (oddp a) 2 3))))
 
> (odd*2-even*3 '(3 -7 0 5 -4))
(6 -14 0 10 -12)
2
Модератор
Эксперт Python
28974 / 15768 / 3133
Регистрация: 12.02.2012
Сообщений: 25,905
Записей в блоге: 4
14.12.2013, 15:19 6
Люблю такие задачи... Особую пикантность им придает неясность: нечетный по значению или по порядковому номеру?

Если считать по порядку, то вот:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(defun task (lst)
  (mapcar #'(lambda (x y) (if (oddp y) (+ x x) (+ x x x))) lst (range 1 (length lst))))
 
==> task
 
(task '(1 2 3 11 22 33))
 
==> (2 6 6 33 44 99)
 
(defun task (lst &optional f)
  (cond ((null lst) nil)
        (f (cons (* 3 (car lst)) (task (cdr lst) (not f))))
        (t (cons (* 2 (car lst)) (task (cdr lst) (not f))))))
 
==> task
 
(task '(1 2 3 11 22 33))
 
==> (2 6 6 33 44 99)
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2013, 15:19

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Умножить на 2 каждый четный элемент матрицы А
Помогите решить задачу на Паскале. Нужно каждый четный элемент матрицы удвоить

В строке символов сделать каждый четный элемент прописным, а нечетный маленьким
int main() { char s, sym; int n, i, l = 0; system("chcp 1251"); system("cls");...

Каждый четный элемент массива умножить на минимальный его элемент
В одномерном массиве, состоящем из n целых элементов, каждый четный элемент умножить на минимальный...

Каждый нечетный элемент массива умножить на 10 и вычислить сумму четных элементов.
задание: в одномерном массиве, состоящем из n целых элементов, каждый нечетный элемент умножить на...


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

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

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