Dados tres enteros n , m y k , la tarea es encontrar el entero más pequeño > n tal que el dígito m aparezca exactamente k veces en él.
Ejemplos:
Entrada: n = 111, m = 2, k = 2
Salida: 122
Entrada: n = 111, m = 2, k = 3
Salida: 222
Enfoque: comience a iterar desde n + 1 y para cada número entero verifique si consta del dígito m exactamente k veces. De esta manera, se puede encontrar el entero más pequeño > n con el dígito m que aparece exactamente k veces.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function that returns true if n contains // digit m exactly k times bool digitWell(int n, int m, int k) { int cnt = 0; while (n > 0) { if (n % 10 == m) ++cnt; n /= 10; } return cnt == k; } // Function to return the smallest integer > n // with digit m occurring exactly k times int findInt(int n, int m, int k) { int i = n + 1; while (true) { if (digitWell(i, m, k)) return i; i++; } } // Driver code int main() { int n = 111, m = 2, k = 2; cout << findInt(n, m, k); return 0; }
Java
// Java implementation of the approach class GFG { // Function that returns true if n contains // digit m exactly k times static boolean digitWell(int n, int m, int k) { int cnt = 0; while (n > 0) { if (n % 10 == m) ++cnt; n /= 10; } return cnt == k; } // Function to return the smallest integer > n // with digit m occurring exactly k times static int findInt(int n, int m, int k) { int i = n + 1; while (true) { if (digitWell(i, m, k)) return i; i++; } } // Driver code public static void main(String[] args) { int n = 111, m = 2, k = 2; System.out.println(findInt(n, m, k)); } } // This code is contributed by Code_Mech
Python3
# Python3 implementation of the approach # Function that returns true if n # contains digit m exactly k times def digitWell(n, m, k): cnt = 0 while (n > 0): if (n % 10 == m): cnt = cnt + 1; n = (int)(n / 10); return cnt == k; # Function to return the smallest integer > n # with digit m occurring exactly k times def findInt(n, m, k): i = n + 1; while (True): if (digitWell(i, m, k)): return i; i = i + 1; # Driver code n = 111; m = 2; k = 2; print(findInt(n, m, k)); # This code is contributed # by Akanksha Rai
C#
// C# implementation of the approach using System; class GFG { // Function that returns true if n contains // digit m exactly k times static bool digitWell(int n, int m, int k) { int cnt = 0; while (n > 0) { if (n % 10 == m) ++cnt; n /= 10; } return cnt == k; } // Function to return the smallest integer > n // with digit m occurring exactly k times static int findInt(int n, int m, int k) { int i = n + 1; while (true) { if (digitWell(i, m, k)) return i; i++; } } // Driver code public static void Main() { int n = 111, m = 2, k = 2; Console.WriteLine(findInt(n, m, k)); } } // This code is contributed // by Akanksha Rai
PHP
<?php // PHP implementation of the approach // Function that returns true if n // contains digit m exactly k times function digitWell($n, $m, $k) { $cnt = 0; while ($n > 0) { if ($n % 10 == $m) ++$cnt; $n = floor($n / 10); } return $cnt == $k; } // Function to return the smallest integer > n // with digit m occurring exactly k times function findInt($n, $m, $k) { $i = $n + 1; while (true) { if (digitWell($i, $m, $k)) return $i; $i++; } } // Driver code $n = 111; $m = 2; $k = 2; echo findInt($n, $m, $k); // This code is contributed by Ryuga ?>
Javascript
<script> // Javascript implementation of the approach // Function that returns true if n contains // digit m exactly k times function digitWell(n, m, k) { var cnt = 0; while (n > 0) { if (n % 10 == m) ++cnt; n = Math.floor(n/10); } if(cnt == k) return true; else return false; } // Function to return the smallest integer > n // with digit m occurring exactly k times function findInt(n, m, k) { var i = n + 1; while (true) { if (digitWell(i, m, k)) return i; i++; } } // Driver code var n = 111, m = 2, k = 2; document.write(findInt(n, m, k)); </script>
122
Complejidad temporal: O(n * log 10 n)
Espacio Auxiliar: O(1), ya que no se ha ocupado ningún espacio extra.
Publicación traducida automáticamente
Artículo escrito por Shivam.Pradhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA