Skip to content
Related Articles
Print a number containing K digits with digital root D
• Last Updated : 09 Apr, 2021

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

 ``

## Javascript

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

My Personal Notes arrow_drop_up