Given two positive integers N and M. The task is to find M-th number whose sum of digits of a number until sum becomes single digit is N.

**Examples:**

Input:N = 1, M = 3Output:19 The first two numbers being 1 and 9.Input:N = 2, M = 5Output:38 The first four numbers being 2, 11, 20 and 29.

A **naive** approach is to iterate for all numbers and keep a count of number whose sum returns N.

An **efficient** approach is to find the summation of digits till it becomes single digits in O(1) that has been discussed here. Hence the formula to find M-th number will be:

M

^{th}number: (M-1)*9 + N

Below is the implementation of the above approach:

## C++

`// C++ program to Find m-th number whose` `// sum of digits of a number until` `// sum becomes single digit is N` `#include <bits/stdc++.h>` `using` `namespace` `std;` ` ` `// Function to find the M-th` `// number whosesum till one digit is N` `int` `findNumber(` `int` `n, ` `int` `m)` `{` ` ` `int` `num = (m - 1) * 9 + n;` ` ` `return` `num;` `}` ` ` `// Driver Code` `int` `main()` `{` ` ` ` ` `int` `n = 2, m = 5;` ` ` `cout << findNumber(n, m);` ` ` `return` `0;` `}` |

## Java

`// Java program to Find m-th number whose` `// sum of digits of a number until` `// sum becomes single digit is N` `class` `GFG` `{` ` ` `// Function to find the M-th` `// number whosesum till one digit is N` `static` `int` `findNumber(` `int` `n, ` `int` `m)` `{` ` ` `int` `num = (m - ` `1` `) * ` `9` `+ n;` ` ` `return` `num;` `}` ` ` `// Driver Code` `public` `static` `void` `main(String args[])` `{` ` ` `int` `n = ` `2` `, m = ` `5` `;` ` ` `System.out.print(findNumber(n, m));` `}` `}` ` ` `// This code is contributed` `// by Akanksha Rai` |

## Python3

`# Python3 program to Find m-th number ` `# whose sum of digits of a number` `# until sum becomes single digit is N ` ` ` `# Function to find the M-th ` `# number whosesum till one digit is N` `def` `findNumber(n, m) :` ` ` ` ` `num ` `=` `(m ` `-` `1` `) ` `*` `9` `+` `n; ` ` ` `return` `num; ` ` ` `# Driver Code ` `if` `__name__ ` `=` `=` `"__main__"` `: ` ` ` ` ` `n ` `=` `2` `;` ` ` `m ` `=` `5` `; ` ` ` `print` `(findNumber(n, m))` ` ` `# This code is contributed by Ryuga` |

## C#

`// C# program to Find m-th number whose` `// sum of digits of a number until` `// sum becomes single digit is N` `using` `System;` ` ` `class` `GFG` `{` ` ` `// Function to find the M-th` `// number whosesum till one digit is N` `static` `int` `findNumber(` `int` `n, ` `int` `m)` `{` ` ` `int` `num = (m - 1) * 9 + n;` ` ` `return` `num;` `}` ` ` `// Driver Code` `public` `static` `void` `Main()` `{` ` ` `int` `n = 2, m = 5;` ` ` `Console.Write(findNumber(n, m));` `}` `}` ` ` `// This code is contributed` `// by Akanksha Rai` |

## PHP

`<?php` `// PHP program to Find m-th number whose` `// sum of digits of a number until` `// sum becomes single digit is N` ` ` `// number whosesum till one digit is N` `function` `findNumber(` `$n` `, ` `$m` `)` `{` ` ` `$num` `= (` `$m` `- 1) * 9 + ` `$n` `;` ` ` `return` `$num` `;` `}` ` ` `// Driver Code` `$n` `= 2; ` `$m` `= 5;` `echo` `findNumber(` `$n` `, ` `$m` `);` ` ` `// This code is contributed` `// by Akanksha Rai` `?>` |

**Output:**

38

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****.**