📜  打印带有数字根号D的包含K位数字的数字

📅  最后修改于: 2021-04-27 18:22:40             🧑  作者: Mango

给定数字根“ D”和位数“ K”。任务是打印一个数字,该数字包含K个数字,其数字根等于D。如果不存在此数字,则打印“ -1”。

例子:

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

方法:解决此问题的一个关键观察结果是,将任意数量的0附加到一个数字不会改变其数字根。因此, D后面跟(K-1)0是一个简单的解决方案。

下面是上述方法的实现:

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


输出:
4000

时间复杂度: O(K)