Related Articles
Recursive sum of digits of a number formed by repeated appends
• Difficulty Level : Basic
• Last Updated : 30 Mar, 2021

Given two positive number N and X. The task is to find the sum of digits of a number formed by N repeating X number of times until sum become single digit.

Examples :

```Input : N = 24, X = 3
Output : 9
Number formed after repeating 24 three time = 242424
Sum = 2 + 4 + 2 + 4 + 2 + 4
= 18
Sum is not the single digit, so finding
the sum of digits of 18,
1 + 8 = 9

Input : N = 4, X = 4
Output : 7```

As discussed in this post, recursive sum of digits is 9 if number is multiple of 9, else n % 9. Since divisibility and modular arithmetic are compatible with multiplication, we simply find result for single occurrence, multiply result with x and again find the result.

How does this work ?
Lets N = 24 and X = 3.
So, sumUntilSingle(N) = 2 + 4 = 6.
Multiplying 6 by 3 = 18
sumUntilSingle(18) = 9.

Below is the implemenatation of this approach:

## C++

 `// C++ program to find Sum of digits of a``// number formed by repeating a number X number of``// times until sum become single digit.``#include ``using` `namespace` `std;` `// return single digit sum of a number.``int` `digSum(``int` `n)``{``    ``if` `(n == 0)``        ``return` `0;``    ``return` `(n % 9 == 0) ? 9 : (n % 9);``}` `// Returns recursive sum of digits of a number``// formed by repeating a number X number of``// times until sum become single digit.``int` `repeatedNumberSum(``int` `n, ``int` `x)``{``    ``int` `sum = x*digSum(n);``    ``return` `digSum(sum);``}` `// Driver program``int` `main()``{``    ``int` `n = 24, x = 3;``    ``cout << repeatedNumberSum(n, x) << endl;``    ``return` `0;``}`

## Java

 `// Java program to find Sum of digits of a``// number formed by repeating a number X number of``// times until sum become single digit.` `class` `GFG {``    ` `    ``// return single digit sum of a number.``    ``static` `int` `digSum(``int` `n)``    ``{``        ``if` `(n == ``0``)``            ``return` `0``;``        ``return` `(n % ``9` `== ``0``) ? ``9` `: (n % ``9``);``    ``}``    ` `    ``// Returns recursive sum of digits of a number``    ``// formed by repeating a number X number of``    ``// times until sum become single digit.``    ``static` `int` `repeatedNumberSum(``int` `n, ``int` `x)``    ``{``        ``int` `sum = x * digSum(n);``        ``return` `digSum(sum);``    ``}``        ` `    ``// Driver program``    ``public` `static` `void` `main (String[] args)``    ``{``        ``int` `n = ``24``, x = ``3``;``        ``System.out.println(repeatedNumberSum(n, x));``    ``}``}` `// This code is contributed by Ajit.`

## Python3

 `# Python program to find Sum of digits of a``# number formed by repeating a number X number``# of times until sum become single digit.` `# Return single digit sum of a number``def` `digSum(n):``    ``if` `n ``=``=` `0``:``        ``return` `0``    ``return` `(n ``%` `9` `=``=` `0``) ``and` `9` `or` `(n ``%` `9``)``    ` `# Returns recursive sum of digits of a number``# formed by repeating a number X number of``# times until sum become single digit.``def` `repeatedNumberSum(n, x):``    ``sum` `=` `x ``*` `digSum(n)``    ``return` `digSum(``sum``)` `# Driver Code``n ``=` `24``; x ``=` `3``print``(repeatedNumberSum(n, x))` `# This code is contributed by Ajit.`

## C#

 `// C# program to find Sum of digits of a``// number formed by repeating a number X``// number of times until sum becomes``// single digit.``using` `System;` `public` `class` `GFG``{    ``    ``// return single digit sum of a number.``    ``static` `int` `digSum(``int` `n)``    ``{``        ``if` `(n == 0)``            ``return` `0;``            ` `        ``return` `(n % 9 == 0) ? 9 : (n % 9);``    ``}``    ` `    ``// Returns recursive sum of digits of a``    ``// number formed by repeating a number X``    ``// number of times until sum become``    ``// single digit.``    ``static` `int` `repeatedNumberSum(``int` `n, ``int` `x)``    ``{``        ``int` `sum = x * digSum(n);``        ``return` `digSum(sum);``    ``}``    ` `    ``// driver program``    ``public` `static` `void` `Main ()``    ``{``        ``int` `n = 24, x = 3;``        ``Console.Write( repeatedNumberSum(n, x));``    ``}``}` `// This code is contributed by Sam007`

## PHP

 ``

## Javascript

 ``

Output :

`9`

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

My Personal Notes arrow_drop_up