УПРАЖНЕНИЯ НА РЕКУРСИЮ

Сюда будут добавляться задачи. Но не так быстро как могло бы хотеться. Мне на рекурсию сложно искать разнородные задачи, несмотря на множество рекурсивных решений. Это все-таки для начала понимания рекурсии, поэтому очень легкие не охота вписывать, а те, что с деревьями и графами не для самых начинающих. Поэтому буду выискивать что-то между очень легким и сложными структурами данных. Если в задаче дописаны дополнительные условия, значит они относятся только к этой задаче, но не к другим (Одна стрелочка — одна задача)
Пока задач мало, но мало лучше чем ничего.
Предлагаемые здесь упражнения на рекурсию требуют таких решений, в которых никаких циклов не будет использоваться. (goto, for, while и др циклы запрещаются). Разрешается использовать что-то из языка, в чем могут быть прописаны эти циклы (но мы-то об этом не знаем). Т. е. разрешено использовать любые встроенные функции языка. Не разрешается использовать глобальных переменных.
  • Оставить в строке между словами ровно по одному пробелу. (т.е. если строка содержит несколько пробелов подряд, то заменить все это множество пробелов только одним пробелом)
  • Пример (пробелы в примере для наглядности сейчас символы подчеркивания)
    "String___________test___one______________this"
    должно стать
    "String_test_one_this"
    На вход в функцию подается только строка. (Если память выделяется с помощью new, то Строка и длина строки). static использовать запрещено.

 

  • Выполните поиск элемента в массиве. Для поиска элемента используйте рекурсивную функцию. В случае, если элемент не найден, выдавать сообщение об отсутствии. Используйте обычный одномерный массив целочисленных значений

 

  • (Поиск наименьшего значения в массиве) Напишите рекурсивную функцию, которая принимает массив и размер массива как аргументы и возвращает наименьший элемент массива. Функция должна прекращать свою работу и возвращаться, если принимаемый массив имеет один элемент.

 

  • Посчитать сумму цифр в числе
  • В функцию подается целое положительное число.

 

  • Определить является ли строка палиндромом
  • Палиндром — это строка, которая читается одинаково слева-направо и справа-налево

 

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

 

  • Ввод в переменную числа перевертыша

3 комментария на «“C++ Упражнения Рекурсия”»

  1. валерий:

    начало 1. Я ожидаю какие-нибудь рекомендации, но это пока отсутствует

  2. Виктор:

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Поиск

 
     

Случайная книга в электронном формате

https://www.litres.ru/denis-kolisnichenko/programmirovanie-dlya-android-samouchitel/?lfrom=15589587
Яндекс.Метрика