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

указатели с++, дорешать) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ метод создания двух массивов, для дальнейшего умножения их между собой http://www.cyberforum.ru/cpp-beginners/thread189674.html
Помогите правильно описать метод создания двух массивов А и В. Как правильно записать все это??? Создание должно описываться в классе.........То есть я создаю класс, там обьявляю нужные данные, в...
C++ вывод сортировки по алфавиту (ошибка) Скажите пожалуйста в чем ошибка прога не дорабатывает идею. Вот условие: Ввести данные. Отсортировать список студентов по принадлежности к кафедре. В рамках кафедры разместить информацию по... http://www.cyberforum.ru/cpp-beginners/thread189664.html
C++ програама файл на с++
напишите программу считывающую текст из файла и выводящая этот текст в консоли
простое число C++
Подскажите пожалуйста как проверить является ли число простым?
C++ Определить, сигнал какого цвета сигнал горит для пешеходов в этот момент. http://www.cyberforum.ru/cpp-beginners/thread189646.html
3. Работа светофора для пешеходов запрограммирована следующим образом: в начале каждого часа в течение трех минут горит зеленый сигнал, затем в течение двух минут — красный, в течение трех минут —...
C++ Функция _rmdir Хотел бы вас попросить навести мне пример маленькой программы по функции _rmdir подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4984 / 3041 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
11.11.2010, 22:15
Ну давайте посчитаем вручную второй пример:

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

Код
(3, 4) = (2, 1) + (2, 2) + (2, 3) + (2, 4) = 1 + 4 + 10 + 20 = 35, т.к.
    (2, 1) = (1, 1) = 1
    (2, 2) = (1, 1) + (1, 2) = 1 + 3 = 4, т.к.
        (1, 1) = (0, 1) = 1
        (1, 2) = (0, 1) + (0, 2) = 1 + 2 = 3
    (2, 3) = (1, 1) + (1, 2) + (1, 3) = 1 + 3 + 6 = 10, т.к.
        (1, 1) = (0, 1) = 1
        (1, 2) = (0, 1) + (0, 2) = 1 + 2 = 3
        (1, 3) = (0, 1) + (0, 2) + (0, 3) = 1 + 2 + 3 = 6
    (2, 4) = (1, 1) + (1, 2) + (1, 3) + (1, 4) = 1 + 3 + 6 + 10 = 20, т.к.
        (1, 1) = (0, 1) = 1
        (1, 2) = (0, 1) + (0, 2) = 1 + 2 = 3
        (1, 3) = (0, 1) + (0, 2) + (0, 3) = 1 + 2 + 3 = 6
        (1, 4) = (0, 1) + (0, 2) + (0, 3) + (0, 4) = 1 + 2 + 3 + 4 = 10
Вот так же примерно работает и рекурсия: если входные параметры удовлетворяют некоторому условию - базису рекурсии, то сразу вычисляется и возвращается результат. Если базис не достигнут, т.е. непосредственно, напрямую, вычислить выражение не удаётся - то функция вызывает саму себя, но с новыми параметрами. Главное условие - новые параметры всегда должны быть ближе к базису, чем предыдущие, иначе рекурсия не сможет развернуться, т.е. в данном случае функция вызовет саму себя с параметром k - 1, что на 1 ближе к базису, чем предыдущий параметр k. Далее, внутри вновь вызванной функции будет новый параметр k, который на 1 меньше, чем начальный. И эта новая функция вызовет сама себя с уже новым параметром k - 1, а это уже на 2 меньше, чем самый начальный. Таким образом мы обязательно когда-нибудь достигнем условия k == 0 и ветвь рекурсии начнёт разворачиваться (т.е. функция перестанет вызывать сама и будет выдавать уже вполне конкретные числовые ответы). Вообще рекурсия, не очень тривиальная тема, и, возможно, вы ничего не поняли, но тут уж ничего не поделаешь, фиговый из меня учитель)))
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru