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 <bits/stdc++.h> ` `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

`<?php ` `// PHP program to find Sum ` `// of digits of a number ` `// formed by repeating a number ` `// X number of times until ` `// sum becomes single digit. ` ` ` `// return single digit ` `// sum of a number. ` `function` `digSum(` `$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. ` `function` `repeatedNumberSum( ` `$n` `, ` `$x` `) ` `{ ` ` ` `$sum` `= ` `$x` `* digSum(` `$n` `); ` ` ` `return` `digSum(` `$sum` `); ` `} ` ` ` `// Driver Code ` `$n` `= 24; ` `$x` `= 3; ` `echo` `repeatedNumberSum(` `$n` `, ` `$x` `); ` ` ` `// This code is contributed by anuj_67. ` `?> ` |

**Output :**

9

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready.