# Print a number containing K digits with digital root D

Given a digital root ‘D’ and number of digits ‘K’. The task is to print a number containing K digits that has its digital root equal to D. Print ‘-1’ if such a number does not exist.

Examples:

```Input: D = 4, K = 4
Output: 4000
No. of digits is 4.
Sum of digits is also 4.

Input:  D = 0, K = 1
Output: 0
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: A key observation to solving this problem is that appending any number of 0s to a number does not change its digital root. Hence D followed by (K-1) 0’s is a simple solution.

Special case when D is 0 and K is not 1 does not have a solution since the only number with digital root 0 is 0 itself.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the above approach ` `#include ` `using` `namespace` `std; ` ` `  `// Function to find a number ` `void` `printNumberWithDR(``int` `k, ``int` `d) ` `{ ` ` `  `    ``// If d is 0 k has to be 1 ` `    ``if` `(d == 0 && k != 1) ` `        ``cout << ``"-1"``; ` ` `  `    ``else` `{ ` `        ``cout << d; ` `        ``k--; ` ` `  `        ``// Print k-1 zeroes ` `        ``while` `(k--) ` `            ``cout << ``"0"``; ` `    ``} ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `k = 4, d = 4; ` ` `  `    ``printNumberWithDR(k, d); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java implementation of the above approach ` ` `  `import` `java.io.*; ` ` `  `class` `GFG { ` ` `  ` `  `// Function to find a number ` `static` `void` `printNumberWithDR(``int` `k, ``int` `d) ` `{ ` ` `  `    ``// If d is 0 k has to be 1 ` `    ``if` `(d == ``0` `&& k != ``1``) ` `        ``System.out.print( ``"-1"``); ` ` `  `    ``else` `{ ` `        ``System.out.print(d); ` `        ``k--; ` ` `  `        ``// Print k-1 zeroes ` `        ``while` `(k-->``0``) ` `            ``System.out.print( ``"0"``); ` `    ``} ` `} ` ` `  `// Driver code ` ` `  `    ``public` `static` `void` `main (String[] args) { ` `            ``int` `k = ``4``, d = ``4``; ` ` `  `    ``printNumberWithDR(k, d); ` `    ``} ` `} ` ` `  ` `  `//This code is contributed by inder_verma.. `

## Python3

 `# Python3 implementation of  ` `# the above approach ` ` `  `# Function to find a number ` `def` `printNumberWithDR( k, d ) : ` ` `  `    ``# If d is 0, k has to be 1  ` `    ``if` `d ``=``=` `0` `and` `k !``=` `1` `: ` `        ``print``(``-``1``, end ``=` `"") ` ` `  `    ``else` `: ` `        ``print``(d, end ``=` `"") ` `        ``k ``-``=` `1` ` `  `        ``# Print k-1 zeroes  ` `        ``while` `k : ` `             `  `            ``print``(``0``,end ``=` `"") ` `            ``k ``-``=` `1` `             `  ` `  `# Driver code      ` `if` `__name__ ``=``=` `"__main__"` `: ` ` `  `    ``k, d ``=` `4``, ``4` ` `  `    ``# Function call ` `    ``printNumberWithDR( k, d ) ` `             `  `# This code is contributed by  ` `# ANKITRAI1 `

## C#

 `// C# implementation of the above approach  ` `using` `System; ` ` `  `class` `GFG { ` `     `  `// Function to find a number  ` `static` `void` `printNumberWithDR(``int` `k, ``int` `d)  ` `{  ` ` `  `    ``// If d is 0 k has to be 1  ` `    ``if` `(d == 0 && k != 1)  ` `        ``Console.Write( ``"-1"``);  ` ` `  `    ``else` `{  ` `         `  `        ``Console.Write(d);  ` `        ``k--;  ` ` `  `        ``// Print k-1 zeroes  ` `        ``while` `(k-->0)  ` `            ``Console.Write( ``"0"``);  ` `    ``}  ` `}  ` ` `  `// Driver code  ` `static` `public` `void` `Main () ` `{ ` `    ``int` `k = 4, d = 4;  ` ` `  `    ``printNumberWithDR(k, d);  ` `}  ` `}  ` ` `  `// This code is contributed by ajit.  `

## PHP

 ` `

Output:

```4000
```

Time complexity: O(K)

My Personal Notes arrow_drop_up

Article Tags :
Practice Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.