Un número encantador es un número que solo consta de 3 y 8 como dígitos. Nos dan un número de n dígitos, tiene un total de tres operaciones:
- Sumar 1 al número dado.
- Restar 1 al número dado.
- Seleccionando un dígito de número y reemplazándolo con cualquier otro dígito deseado.
Necesitamos encontrar el número total de operaciones para cambiar un número dado a un número encantador.
Ejemplos:
Input : num = 343 Output : Minimum Operation = 1 Input : num = 88 Output : Minimum operation = 0
Antes de pasar a la solución adecuada, echemos un vistazo más de cerca a las operaciones dadas.
- Al agregar 1 al número dado, contará 1 operación y lo que puede hacer es incrementar el último dígito en 1 a menos que sea 9 y si el último dígito es 9, también cambiará los dígitos que preceden al último. Entonces, en el mejor de los casos, si el último dígito es 2 o 7, esta operación los cambiará a 3 u 8 al costo de 1 operación.
- Restar 1 al número dado, también contará 1 como operación y solo disminuirá el último dígito a menos que sea 0. Entonces, en el mejor de los casos, si el último dígito es 4 o 9, esta operación los cambiará a 3 u 8 al costo de 1 operación. .
- Seleccionar cualquier dígito y cambiar su valor contará como una sola operación, pero seguramente cambiará de dígito a dígito encantador, es decir, 3 u 8. Por lo tanto, en el mejor y en el peor de los casos, esta operación cambiará un solo dígito a la vez.
Por lo tanto, para encontrar la operación mínima, la suma y la resta no nos serán útiles y solo se seleccionará y cambiará el número de dígitos que no sea igual a 3 u 8. Entonces, el número total de dígitos que no sea igual a 3 u 8 será nuestra respuesta.
C++
// CPP to find min operations required to // convert into charming number #include <bits/stdc++.h> using namespace std; // function for minimum operation int minOp(long long int num) { // remainder and operations count int rem; int count = 0; // count digits not equal to 3 or 8 while (num) { rem = num % 10; if (!(rem == 3 || rem == 8)) count++; num /= 10; } return count; } // driver function int main() { long long int num = 234198; cout << "Minimum Operations =" << minOp(num); return 0; }
Java
// Java to find min operations required to // convert into charming number class GFG { // function for minimum operation static int minOp(int num) { // remainder and operations count int rem; int count = 0; // count digits not equal to 3 or 8 while (num>0) { rem = num % 10; if (!(rem == 3 || rem == 8)) count++; num /= 10; } return count; } // Driver code public static void main (String[] args) { int num = 234198; System.out.print("Minimum Operations ="+minOp(num)); } } // This code is contributed by Anant Agarwal.
Python3
# Python to find min # operations required to # convert into charming number # function for minimum operation def minOp(num): # remainder and operations count count = 0 #count digits not equal to 3 or 8 while (num): rem = num % 10 if (not(rem == 3 or rem == 8)): count=count + 1 num = num // 10 return count # Driver code num = 234198 print("Minimum Operations =" ,minOp(num)) # This code is contributed # by Anant Agarwal.
C#
// C# to find min operations required to // convert into charming number using System; class GFG { // function for minimum operation static int minOp(int num) { // remainder and operations count int rem; int count = 0; // count digits not equal to 3 or 8 while (num > 0) { rem = num % 10; if (! (rem == 3 || rem == 8)) count++; num /= 10; } return count; } // Driver code public static void Main () { int num = 234198; Console.WriteLine("Minimum Operations =" + minOp(num)); } } // This code is contributed by vt_m.
PHP
<?php // PHP to find min operations required to // convert into charming number // function for minimum operation function minOp($num) { // remainder and operations count $count = 0; // count digits not equal to 3 or 8 while ($num) { $rem = intval($num % 10); if (!($rem == 3 || $rem == 8)) $count++; $num = intval($num / 10); } return $count; } // Driver Code $num = 234198; echo "Minimum Operations = " . minOp($num); // This code is contributed by Sam007 ?>
Javascript
<script> // Javascript to find min operations required to // convert into charming number // function for minimum operation function minOp(num) { // remainder and operations count var rem; var count = 0; // count digits not equal to 3 or 8 while (num) { rem = num % 10; if (!(rem == 3 || rem == 8)) count++; num = parseInt(num/10); } return count; } // driver function var num = 234198; document.write( "Minimum Operations = " + minOp(num)); </script>
Producción:
Minimum Operations = 4
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