📌  相关文章
📜  查找包含数字k或可被k整除的第n个数字。

📅  最后修改于: 2021-04-24 15:35:34             🧑  作者: Mango

您给了两个数字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