Recursive Digit Sum

  • + 0 comments

    Python 3 solution

    Initially I tried expanding the string n by k multiple:

    full_integer = n * k
    

    This lead to runtime error in 4 hidden cases.

    Instead, summing all digits in n then multiplying by k solves the runtime issue.

    def int_to_int_arr(integer):
        return list(map(int, str(integer)))
    
    def sum_array(n):
        if len(n) != 1:
            new_int = sum(n)
            int_arr = int_to_int_arr(new_int)
            return sum_array(int_arr)
        else:
            # One digit left in integer
            return n[0]
    
    def superDigit(n, k):
        # Cast n string to int array
        int_arr = list(map(int, n))
        
        # Multiply sum by k
        sum_multiple = sum(int_arr) * k
        
        # Cast sum multiple to int array
        int_arr = int_to_int_arr(sum_multiple)
        return sum_array(int_arr)