Wednesday, November 20, 2024
Google search engine
HomeData Modelling & AIPrint a number containing K digits with digital root D

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

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)

Auxiliary Space: O(1)
 

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

Commit to GfG’s Three-90 Challenge! Purchase a course, complete 90% in 90 days, and save 90% cost click here to explore.

Last Updated :
21 Aug, 2022
Like Article
Save Article


Previous

<!–

8 Min Read | Java

–>


Next


<!–

8 Min Read | Java

–>

Share your thoughts in the comments

RELATED ARTICLES

Most Popular

Recent Comments