Recursive Digit Sum

Sort by

recency

|

818 Discussions

|

  • + 0 comments

    Python

    def superDigit(n, k):
        # Write your code here
        num = str(sum([int(i) for i in str(n)])) * k
        
        def rec(num):
            if len(str(num)) == 1:
                return num
            
            return rec(str(sum([int(i) for i in num])))
            
        return rec(num)
    
  • + 0 comments
    def superDigit(n, k):
        # Write your code here
        digit = sum(int(i) for i in n)
        total = digit*k
        return helper(total)
        
    def helper(num):
        if num<10:
            return num
        s = sum(int(i) for i in str(num))
        return helper(s)
        
    
  • + 0 comments

    This is the complete code.

    #include <iostream>
    #include <string>
    #include <numeric>
    using namespace std;
    
    int calculateSuperDigit(long long num) {
        if (num < 10) {
            return static_cast<int>(num);
        }
    
        long long sum_of_digits = 0;
        while (num > 0) {
            sum_of_digits += num % 10; 
            num /= 10;                 
        }
    
        return calculateSuperDigit(sum_of_digits);
    }
    
    int superDigit(string n, int k) {
        long long sum_n = 0;
        for (char c : n) {
            sum_n += c - '0'; 
        }
    
      
        long long initial_sum = sum_n * k;
    
        return calculateSuperDigit(initial_sum);
    }
    
    
    int main() {
        ios_base::sync_with_stdio(false);
        cin.tie(NULL);
    
        string n;
        int k;
    
        cin >> n >> k;
    
        int result = superDigit(n, k);
    
        cout << result << endl;
    
        return 0;
    }
    
  • + 0 comments
    public static int superDigit(String n, int k) {
        long superdigit = Arrays.stream(n.split("")).mapToLong(Long::valueOf).sum()*k;
        while(superdigit>10) {
            superdigit = Arrays.stream(String.valueOf(superdigit).split("")).mapToLong(Long::valueOf).sum();
        }
        return (int)superdigit;
    }
    
  • + 0 comments
    def superDigit(N, K):
        # Write your code here
        return int(N) if K== 1 and len(N) == 1 else superDigit(str(K * sum([int(n) for n in N])), 1)