Нужна помощь по рекурсивным алгоритмам(6,7)
Ответы
Ответ:
Объяснение:
давайте по шагам рассмотрим:
1) на входе 2:
выводим 2
2 < 7, поэтому вызываем функцию F(2 + 3)
имеем n = 5 и снова идем в начало функции:
2) на входе n = 5
выводим 5
5 < 7, поэтому вызываем F(5 + 3)
имеем n = 8 и снова идем в начало функции:
3) на входе n = 8
выводим 8
8 > 7, поэтому возвращаемся к 2)
вызов F(n+3) окончен для n = 5
следующее действие F(5 * 2)
имеем n = 10 и снова идем в начало функции:
3) на входе n = 10
выводим 10
10 > 7, поэтому возвращаемся к 2)
вызов F(n*2) окончен для n = 5
вызов функции F(5) окончен
возвращаемся к 1)
вызов F(n+3) окончен для n = 2
следующее действие F(2 * 2)
имеем n = 4 и снова идем в начало функции:
4) на входе n = 4
выводим 4
4 < 7, поэтому вызываем F(4 + 3)
имеем n = 7 и снова идем в начало функции:
5) на входе n = 7
выводим 7
7 = 7, поэтому возвращаемся к 4)
вызов F(n+3) окончен для n = 4
следующее действие F(4 * 2)
имеем n = 8 и снова идем в начало функции:
6) на входе n = 8
выводим 8
8 > 7, поэтому возвращаемся к 1)
вызов F(n*2) окончен для n = 2
программа окончена
выведенные числа: 2, 5, 8, 10, 4, 7, 8
сумма: 44
7. для этой задачи аналогичные рассуждения, т.е. мы выводим числа прибавляя двойку, пока они не будут больше 7
1, 3, 5, 7
далее возвращаемся к шагу n = 5, и выполняем прибавление 3
8, т.к. больше 7, то
возвращаемся к n = 3, и выполняем прибавление 3
6
прибавляем 2, пока не пересечем 7:
8
далее возвращаемся к шагу n = 6, и выполняем прибавление 3
9
возвращаемся к n = 1, и выполняем прибавление 3
4
прибавляем 2, пока не пересечем 7:
6
прибавляем 2, пока не пересечем 7:
8
далее возвращаемся к шагу n = 6, и выполняем прибавление 3
9
возвращаемся к n = 4, и выполняем прибавление 3
7
Закончили программу
выведенные числа: 1 3 5 7 8 6 8 9 4 6 8 9 7
их сумма: 81
2
5
8
10
4
7
8