Dado un número entero N , la tarea es determinar si es posible obtener el valor N de 1 multiplicando repetidamente por 10 o 20. Escriba Sí si es posible o No en caso contrario.
Ejemplos:
Entrada: N = 200
Salida: SI
Explicación:
1 * 10 -> 10 * 20 -> 200
Entrada: N = 90
Salida: NO
Enfoque:
siga los pasos a continuación para resolver el problema:
- Cuente el número de ceros finales.
- Después de eliminar los ceros finales, si el N restante no se puede expresar como una potencia de 2, imprima NO .
- De lo contrario, si log 2 N <= Recuento de ceros finales, imprima Sí.
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to check if N // can be obtained from 1 by // repetitive multiplication // by 10 or 20 #include<bits/stdc++.h> using namespace std; // Function to check if N can // be obtained or not void Is_possible(long long int N) { int C = 0; int D = 0; // Count and remove trailing // zeroes while (N % 10 == 0) { N = N / 10; C += 1; } // Check if remaining // N is a power of 2 if(pow(2, (int)log2(N)) == N) { D = (int)log2(N); // To check the condition // to print YES or NO if (C >= D) cout << "YES"; else cout << "NO"; } else cout << "NO"; } // Driver code int main() { long long int N = 2000000000000; Is_possible(N); } // This code is contributed by Stream_Cipher
Java
// Java program to check if N // can be obtained from 1 by // repetitive multiplication // by 10 or 20 import java.util.*; class GFG{ static void Is_possible(long N) { long C = 0; long D = 0; // Count and remove trailing // zeroes while (N % 10 == 0) { N = N / 10; C += 1; } // Check if remaining // N is a power of 2 if(Math.pow(2, (long)(Math.log(N) / (Math.log(2)))) == N) { D = (long)(Math.log(N) / (Math.log(2))); // To check the condition // to prlong YES or NO if (C >= D) System.out.print("YES"); else System.out.print("NO"); } else System.out.print("NO"); } // Driver code public static void main(String args[]) { long N = 2000000000000L; Is_possible(N); } } // This code is contributed by Stream_Cipher
Python
# Python Program to check if N # can be obtained from 1 by # repetitive multiplication # by 10 or 20 import math # Function to check if N can # be obtained or not def Is_possible(N): C = 0 D = 0 # Count and remove trailing # zeroes while ( N % 10 == 0): N = N / 10 C += 1 # Check if remaining # N is a power of 2 if ( math.log(N, 2) - int(math.log(N, 2)) == 0): D = int(math.log(N, 2)) # To check the condition # to print YES or NO if (C >= D): print("YES") else: print("NO") else: print("NO") # Driver Program N = 2000000000000 Is_possible(N)
C#
// C# program to check if N // can be obtained from 1 by // repetitive multiplication // by 10 or 20 using System; class GFG{ static void Is_possible(long N) { long C = 0; long D = 0; // Count and remove trailing // zeroes while (N % 10 == 0) { N = N / 10; C += 1; } // Check if remaining // N is a power of 2 if(Math.Pow(2, (long)(Math.Log(N) / (Math.Log(2)))) == N) { D = (long)(Math.Log(N) / (Math.Log(2))); // To check the condition // to prlong YES or NO if (C >= D) Console.WriteLine("YES"); else Console.WriteLine("NO"); } else Console.WriteLine("NO"); } // Driver Code public static void Main() { long N = 2000000000000L; Is_possible(N); } } // This code is contributed by Stream_Cipher
Javascript
<script> // Java script program to check if N // can be obtained from 1 by // repetitive multiplication // by 10 or 20 function Is_possible( N) { let C = 0; let D = 0; // Count and remove trailing // zeroes while (N % 10 == 0) { N = N / 10; C += 1; } // Check if remaining // N is a power of 2 if(Math.pow(2, (Math.log(N) / (Math.log(2)))) == N) { D = (Math.log(N) / (Math.log(2))); // To check the condition // to prlong YES or NO if (C >= D) document.write("YES"); else document.write("NO"); } else document.write("NO"); } // Driver code let N = 2000000000000; Is_possible(N); //this code is contributed by sravan kumar </script>
Producción:
YES
Complejidad de tiempo: O(log 10 (N))
Espacio auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por vermashivani543 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA