• Предмет: Информатика
  • Автор: kotin95
  • Вопрос задан 11 месяцев назад

Нужна помощь по рекурсивным алгоритмам(6,7)

Приложения:

Ответы

Ответ дал: IrkaShevko
1

Ответ:

Объяснение:

давайте по шагам рассмотрим:

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


SpitefulSpamer: Если честно, я не понял, как Вы это получили, но у Вас ошибка. Эта программа выдаёт:
2
5
8
10
4
7
8
SpitefulSpamer: И сумма, соответственно, тоже не 56, а 44
SpitefulSpamer: Во второй всё правильно
IrkaShevko: Я перепроверила, написав программу, ответы сошлись
IrkaShevko: Все, поняла, я вместо *, + написала, исправим
IrkaShevko: исправлено
Вас заинтересует