|
Рекурсия ломает мой мозг
|
|||
---|---|---|---|
#18+
Всем привет. Я пока-что с трудом понимаю рекурсию. И вот в чем мой вопрос. Допустим, есть учебная задача. Написать функцию для подсчета чисел в одномерном массиве используя при этом рекурсию. ОК. Поехали. Вот код, который подсчитывает сумму чисел. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Все ОК. Сумма чисел подсчитывает правильно. Равно 15. Но если немного код изменить Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
То здесь уже не правильно подсчитывает сумму чисел. Она равно 16. Вопрос. Почему именно так? Я пока не совсем догоняю эту рекурсию. Строго не судите:) Я новичок:) Прикрепляю файл. Это примерно как я представляю работу рекурсии. Правильность картинки не гарантирую:) Это лишь мои мысли:) Помогите понять мне, нубу, как работает это рекурсия:) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.02.2022, 23:53 |
|
Рекурсия ломает мой мозг
|
|||
---|---|---|---|
#18+
Ну поскольку ты изменил алгоритм то последняя единичка из массива (нулевой элемент) учлась дважды. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 00:23 |
|
Рекурсия ломает мой мозг
|
|||
---|---|---|---|
#18+
потому что size=1 Код: plaintext 1. 2. 3. 4.
вариант 2 Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 00:26 |
|
Рекурсия ломает мой мозг
|
|||
---|---|---|---|
#18+
Dragon88, Alex Ustinov тебе правильно подсказал про второй вариант. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2022, 10:05 |
|
|
start [/forum/topic.php?fid=57&tid=2017135]: |
0ms |
get settings: |
3ms |
get forum list: |
6ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
112ms |
get tp. blocked users: |
1ms |
others: | 354ms |
total: | 541ms |
0 / 0 |