Форум программистов, компьютерный форум CyberForum.ru

Вопрос по рекурсии - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ "М" на "Н" http://www.cyberforum.ru/cpp-beginners/thread233602.html
Требуется написать программу на С++, заменяющюю в строке S все буквы "М" на "Н" и обратно. При отсутствии букв "М" и "Н", должно выдаваться соответствующее сообщение.
C++ Функции пользователя Функции пользователя Составить программу, которая решает задачу с такими дополнительными условиями: • размерность матрицы должна вводиться при выполнении программы; • само решение задачи должно быть оформлено в виде функции, которой передается матрица и ее размерность. Заполнить матрицу ЛП, от центра по спирали: влево - вниз - вправо - вверх. С ++ пожалуйста http://www.cyberforum.ru/cpp-beginners/thread233599.html
C++ Новичек
Что значит выполняется за время NlogN?
C++ operator
Всем привет, опять непонятка в книге, дошел до оператора operator и ничего не понял, для чего он нужен, что он делает, то есть как он перегружает символы и как им пользоваться, привидите пожалуйста пример, заранее благодарен!
C++ gljuki programi http://www.cyberforum.ru/cpp-beginners/thread233586.html
ustanovil na novij komp m.v.s. 2005, eta programa rabotala na drugom kompe otli4no sdes vidajot o6ibku pri vvode # include<iostream.h>
C++ Повторения Дана задача: Дан одномерный массив из 150 случайных целых чисел в диапазоне от 14 до 37 включительно. Вывести те числа, которые наиболее редко встречаются в массиве и количество их повторений. Подсчет количества повторений для числа оформить в виде функции. Я уже почти все сделал, но нужно, чтобы программа выводила количество повторений каждого числа, и если будет несколько наиболее редких... подробнее

Показать сообщение отдельно
aleksand
21 / 9 / 2
Регистрация: 18.06.2011
Сообщений: 185
30.10.2012, 10:58     Вопрос по рекурсии
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ты писал:И я сказал, что ты ошибаешься.
- Сначала выполняется if (*s) reverse (s+1);
При этом вызывается reverse (s+1), которая выводит задом на перёд строку без первого символа
- После этого возвращаемся в конец 16-й строчки уже после вызова reverse
- и выходим из if, так других команд кроме reverse в этой ветке if-a нет (RETURN не вызовется, потому что мы продолжаем исполнять тот if, который начали до рекурсивного вызова reverse (s+1); )
- далее переходим на 20ю строчку и выводим первый символ (который оказывается выведен после вывода-наоборот всего слова в конце)
В итоге получается строку, выведенную целиком наоборот.

Логика одной фразой: "Чтобы вывести строку наоборот, надо вывести строку без первой буквы наоборот и после этой операции в конец добавить первую букву"
Никак не могу понять, походу дело совсем плохо. Ещё подробнее можете объяснить? Просто реально не понятно как вообще вот этот третий вызов осуществляется, а потом ещё и делается переход ко второму
 
Текущее время: 16:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru