Encuentra el número n que contiene el dígito k o divisible por k.

Has dado dos números n y k. Debe encontrar el número n-ésimo que contiene el dígito k o divisible por k (2 <= k <=9).
Ejemplos: 
 

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.

Método:
Verifique cada número de k que contenga el dígito k o sea divisible por k hasta que no obtengamos el número n. 
 

C++

// C++ program to find nth number that contains
// the digit k or divisible by k.
#include <bits/stdc++.h>
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

<?php
// PHP 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
function 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
function findNthNumber($n, $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 ($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
$n = 10; $k = 2;
echo findNthNumber($n, $k);
 
// This code is contributed
// by inder_verma
?>

Javascript

<script>
// JavaScript 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
    function checkdigit(n, k)
    {
        while (n != 0)
        {
            // finding remainder
            let rem = n % 10;
       
            // if digit found
            if (rem == k)
                return true;
       
            n = n / 10;
        }
   
        return false;
    }
   
    // Function for finding nth number
    function findNthNumber(n, 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 (let 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
 
        let n = 10, k = 2;
        document.write(findNthNumber(n, k));
 
// This code is contributed by susmitakundugoaldanga.
</script>

Producción: 
 

 20 

Complejidad de tiempo: O (nlog (n)), ya que este es un enfoque de fuerza bruta.

Complejidad espacial: O(1)
 

Publicación traducida automáticamente

Artículo escrito por Anivesh Tiwari y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *