Recursive Digit Sum

Sort by

recency

|

206 Discussions

|

  • + 0 comments

    Java:

    I dont know what im doing wrong:

    public static int superDigit(String n, int k) {
            StringBuilder superNBuilder = new StringBuilder(n);
            for(int i=0;i<k-1;i++)
            {
                superNBuilder.append(n);
            }
            String superN = superNBuilder.toString();
            BigInteger result = new BigInteger(""+superN.charAt(0));
            while(superN.length()>1){
                result=BigInteger.ZERO;
                for(int i=0;i<superN.length();i++){
                    result=result.add(new BigInteger(""+superN.charAt(i)));
                }
                superN=result.toString();
            }
            return result.intValue();
        }
    
  • + 1 comment

    I don't get it. Described example '9875 4' results with super digit 2, but in Test case 1 with the same input the expected output is 8...

  • + 0 comments

    C++ solution

    int superDigit(string n, int k) {
        long long sum = 0;
        for(char chr : n)
            sum += chr - '0';
        sum *=k;
        while (sum>9){
            long long sum2 =0;
            while (sum > 0){
                sum2 += sum % 10;
                sum = sum/10;
            }
            sum = sum2;
            
        }     
        return sum; 
    }
    
  • + 0 comments

    def superDigit(n, k):

    str1 = str(n)
    sum1 =  0
    
    for i in str1:
        sum1 += int(i)
    
    sum1 = sum1*k
    str2 = str(sum1)
    
    while len(str2) != 1:
        sum2 = 0
        for i in str2:
            sum2 += int(i)
        str2 = str(sum2)
    return sum2
    
  • + 0 comments
    Easy JavaScript Solution
    function superDigit(n, k) {
        if(n.length === 1){
            return n
        }
        let p = 0
        for(const num of n){
            const z = k*Number(num)
            p+=z
        }
       return superDigit(p.toString(), 1)
    }