Рекурсия | Sololearn: Learn to code for FREE!
New course! Every coder should learn Generative AI!
Try a free lesson
0

Рекурсия

https://sololearn.com/coach/167/?ref=app Может кто нибудь объяснить как оно здесь работает ? Решить то решил, но почему именно так return list[0]**2 + calc(list[1:])

29th Nov 2021, 12:33 PM
Xexe
Xexe  - avatar
1 Answer
0
Если ещё актуально, выложи код. Это задание не видно тем, у кого нет PRO аккаунта. На сколько я понимаю это получение суммы квадратов всех элементов списка? В начале берётся первый элемент списка и возводится в квадрат list[0]**2 ждёт, что к ней добавится результат вызова функции с тем же списком, но начиная со второго элемента list[1:]. При этом вызове происходит тоже самое - из списка берётся первый элемент, возводится в степень и ожидает результат вызова функции со списком уже без первых двух элементов и так, пока список не закончится. Видимо есть условие прерывания что-то вроде if not list: return 0. После этого происходит складывание всех элементов. Т.е. получается что-то типа такого: list[0]**2 + (list[1]**2 + (list[2]**2 +(.... +0))))) В этом кроется проблема рекурсии - можно тупо не дождаться закрытия последней скобки
2nd Dec 2021, 7:33 PM
Alexey Kopyshev
Alexey Kopyshev - avatar