# Recursive sum of digits of a number formed by repeated appends

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 implementation 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`

Feeling lost in the world of random DSA topics, wasting time without progress? It's time for a change! Join our DSA course, where we'll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 geeks!

Previous
Next