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

Задача на рекурсию

29.10.2016, 12:00. Просмотров 989. Ответов 2
Метки нет (Все метки)

Помогите описать функцию, которая, выдавала бы элемент списка по заданному номеру, считая от конца, учитывая элементы подсписков. Например, результатом применения функции к аргументам ’2 ’(a (b c (d)) e) должен быть ’d (второй с конца)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.10.2016, 12:00
Ответы с готовыми решениями:

Задача на простую рекурсию
Вот как не крути не могу понять как организовывается рекурсия. Суть задачи в том, что функция...

Переделать рекурсию по аргументу в рекурсию по значению
эта рекурсия по аргументу, заменяющая Y на число, равное глубине вложения Y в список List,...

Задача на рекурсию
Вот код проги которую я написал: #include <iostream> using namespace std; int factr(double...

Задача на рекурсию
const n=...; type vector = array of real; Описать рекурсивную функцию max (x) для определения...

2
4320 / 4049 / 319
Регистрация: 12.05.2012
Сообщений: 2,859
29.10.2016, 12:22 2
Лучший ответ Сообщение было отмечено anyapiy как решение

Решение

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun elt-from-end (n w)
  (car (last (flat w nil) n)))
 
(defun flat (w acc) 
  (cond ((null w) acc)
        ((atom w) (cons w acc))
        ((flat (car w) (flat (cdr w) acc)))))
 
> (elt-from-end 2 '( 1 2 3 4 5))
4
> (elt-from-end 2 '( 1 2 (3 (4)) 5))
4
Добавлено через 2 минуты
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
(defun elt-from-end (n w)
  (nth (1- n) (reverse (flat w nil))))
 
(defun flat (w acc) 
  (cond ((null w) acc)
        ((atom w) (cons w acc))
        ((flat (car w) (flat (cdr w) acc)))))
 
> (elt-from-end 2 '( 1 2 3 4 5))
4
> (elt-from-end 2 '( 1 2 (3 (4)) 5))
4
1
1 / 1 / 0
Регистрация: 15.12.2014
Сообщений: 13
29.10.2016, 13:17  [ТС] 3
Спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.10.2016, 13:17

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

Задача на рекурсию
Нашел одну задачу, она по моему на рекурсию, но не могу реализовать это. Сколько существует...

Задача на рекурсию
Помогите, пожалуйста, решить задачу.

Задача на рекурсию
Задание: написать функцию умножения двух чисел, используя только операции сложения и рекурсии. Не...

задача на рекурсию
Карта лабиринта представляет квадратное поле размером N*N. Некоторые квадраты этого поля запрещены...


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

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

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