给定数字根“ 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是一个简单的解决方案。
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.
下面是上述方法的实现:
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)