Python: цифровое root номера: возвращается Нет - PullRequest
1 голос
/ 25 февраля 2020

Учитывая номер, сложите цифры, чтобы получить новый номер. Сложите цифры этого, чтобы получить другой новый номер. Продолжайте делать это, пока не получите номер, который имеет только один ди git. Это число является цифровым root данным числом.

Например, если n = 45893, мы складываем цифры, чтобы получить 4 + 5 + 8 + 9 + 3 = 29. Затем мы складываем цифры 29, чтобы получить 2 + 9 = 11. Затем мы складываем цифры 11, чтобы получить 1 + 1 = 2. Так как 2 имеет только одну ди git, 2 - это наша цифровая root.

def sum_digit_root(num):
    n=str(num)
    if len(n)<=1:
        return num

    else:
        sum=0
        for i in range(len(n) ):
            sum+=int(n[i] )

        sum_digit_root(sum)


print('\n---print sum_digit_root(num)   ---------------------------', sum_digit_root(45893))        

1 Ответ

2 голосов
/ 25 февраля 2020

Вы забыли оператор возврата в ветке else:

def sum_digit_root(num):
    n=str(num)
    if len(n)<=1:
        return num

    else:
        sum=0
        for i in range(len(n) ):
            sum+=int(n[i] )

        return sum_digit_root(sum)
    #   ^^^^^^
...