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

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

`<?php` `// PHP implementation of the above approach` `// Function to find a number` `function` `printNumberWithDR(` `$k` `, ` `$d` `)` `{` ` ` `// If d is 0 k has to be 1` ` ` `if` `(` `$d` `== 0 && ` `$k` `!= 1)` ` ` `echo` `"-1"` `;` ` ` `else` ` ` `{` ` ` `echo` `$d` `;` ` ` `$k` `--;` ` ` `// Print k-1 zeroes` ` ` `while` `(` `$k` `--)` ` ` `echo` `"0"` `;` ` ` `}` `}` `// Driver code` `$k` `= 4;` `$d` `= 4;` `printNumberWithDR(` `$k` `, ` `$d` `);` `// This code is contributed` `// by akt_mit` `?>` |

## Javascript

`<script>` `// Javascript implementation of the above approach` `// Function to find a number` `function` `printNumberWithDR(k, d)` `{` ` ` ` ` `// If d is 0 k has to be 1` ` ` `if` `(d == 0 && k != 1)` ` ` `document.write(` `"-1"` `);` ` ` `else` ` ` `{` ` ` `document.write(d);` ` ` `k--;` ` ` ` ` `// Print k-1 zeroes` ` ` `while` `(k-->0)` ` ` `document.write(` `"0"` `);` ` ` `}` `}` ` ` `// Driver Code` `var` `k = 4, d = 4;` `printNumberWithDR(k, d);` `// This code is contributed by Ankita saini` ` ` `</script>` |

**Output:**

4000

**Time complexity:** O(K)

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