Рекурсия дает мне сумму добавлений.Но как я могу рассчитывать на Python количество рекурсий в моей функции, не использующих глобальную переменную? - PullRequest
0 голосов
/ 24 ноября 2018

Я получаю сумму всех сумм (х ** у).Но я не могу сосчитать все рекурсии.Это действительно без использования глобальной переменной &

X=10
s=0
def Rec(x, y=0, counter):
    s=x**y
    print(s)
    if X-s<0:
        return s
    return s+Rec(x, y=y+1)
print(Rec(2))

1 Ответ

0 голосов
/ 24 ноября 2018

Если вы не хотите использовать глобальные переменные (ура), вы должны передать свои значения через:

# init the y, the sum and counter to 0
def Rec(x, y=0, s=0 counter=0):  
    s+=x**y    # add to sum
    print(s)
    # end of recursion, return sum and counter as tuple
    if s>X:
        return s, counter
    # recurse with y and counter one bigger then before
    return Rec(x, y+1, s, counter+1)

X=10
s=0
print(Rec(2))

Вывод:

1
3
7
15
(15, 3) 
...