您给了两个数字n和k。您需要找到包含数字k或被k整除的第n个数字(2 <= k <= 9)。
例子:
Input : n = 15, k = 3
Output : 33
Explanation : ( 3, 6, 9, 12, 13, 15, 18, 21, 23, 24,
27, 30, 31, 33 ). These are those number who contain
the digit k = 3 or divisible by k and in this nth number
is 33. so output is 33.
Input : n = 10, k = 2
Output : 20
Explanation : ( 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 )
These are those number who contain the digit k = 2 or
divisible by k and in this nth number is 20. so output
is 20.
方法:
检查k中包含数字k或被k整除的每个数字,直到我们没有得到第n个数字为止。
C++
// C++ program to find nth number that contains
// the digit k or divisible by k.
#include
using namespace std;
// Function for checking if digit k
// is in n or not
int checkdigit(int n, int k)
{
while (n)
{
// finding remainder
int rem = n % 10;
// if digit found
if (rem == k)
return 1;
n = n / 10;
}
return 0;
}
// Function for finding nth number
int findNthNumber(int n, int k)
{
// since k is the first which satisfy the
// criteria, so consider it in count making count = 1
// and starting from i = k + 1
for (int i = k + 1, count = 1; count < n; i++)
{
// checking that the number contain
// k digit or divisible by k
if (checkdigit(i, k) || (i % k == 0))
count++;
if (count == n)
return i;
}
return -1;
}
// Driver code
int main()
{
int n = 10, k = 2;
cout << findNthNumber(n, k) << endl;
return 0;
}
Java
// Java program to find nth number that contains
// the digit k or divisible by k.
import java.io.*;
class GFG
{
// Function for checking if digit k
// is in n or not
public static boolean checkdigit(int n, int k)
{
while (n != 0)
{
// finding remainder
int rem = n % 10;
// if digit found
if (rem == k)
return true;
n = n / 10;
}
return false;
}
// Function for finding nth number
public static int findNthNumber(int n, int k)
{
// since k is the first which satisfy th
// criteria, so consider it in count making count = 1
// and starting from i = k + 1
for (int i = k + 1, count = 1; count < n; i++)
{
// checking that the number contain
// k digit or divisible by k
if (checkdigit(i, k) || (i % k == 0))
count++;
if (count == n)
return i;
}
return -1;
}
// Driver code
public static void main (String[] args)
{
int n = 10, k = 2;
System.out.println(findNthNumber(n, k));
}
}
// This code is contributed
// by UPENDRA BARTWAL
Python3
# Python 3 program to find nth number that
# contains the digit k or divisible by k.
# Function for checking if
# digit k is in n or not
def checkdigit(n, k):
while (n):
# finding remainder
rem = n % 10
# if digit found
if (rem == k):
return 1
n = n / 10
return 0
# Function for finding nth number
def findNthNumber(n, k):
i = k + 1
count = 1
while(count < n):
# checking that the number contain
# k digit or divisible by k
if (checkdigit(i, k) or (i % k == 0)):
count += 1
if (count == n):
return i
i += 1
return -1
# Driver code
n = 10
k = 2
print(findNthNumber(n, k))
# This code is contributed
# by Smitha Dinesh Semwal
C#
// C# program to find nth number that contains
// the digit k or divisible by k.
using System;
class GFG
{
// Function for checking if digit k
// is in n or not
public static bool checkdigit(int n, int k)
{
while (n != 0)
{
// finding remainder
int rem = n % 10;
// if digit found
if (rem == k)
return true;
n = n / 10;
}
return false;
}
// Function for finding nth number
public static int findNthNumber(int n, int k)
{
for (int i = k + 1, count = 1; count < n; i++)
{
// checking that the number contain
// k digit or divisible by k
if (checkdigit(i, k) || (i % k == 0))
count++;
if (count == n)
return i;
}
return -1;
}
// Driver code
public static void Main ()
{
int n = 10, k = 2;
Console.WriteLine(findNthNumber(n, k));
}
}
// This code is contributed by vt_m.
PHP
Javascript
输出:
20