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