Sea n cualquier potencia elevada a base 2, es decir, 2 n . Nos dan el número n y nuestra tarea es averiguar el número de dígitos que contiene el número 2 n .
Ejemplos:
Input : n = 5 Output : 2 Explanation : 2n = 32, which has only 2 digits. Input : n = 10 Output : 4 Explanation : 2n = 1024, which has only 4 digits.
Podemos escribir 2 n usando logaritmos como:
2 n = 10 nlog 10 2
Ahora supongamos, x = nlog 10 2,
por lo tanto, 2 n = 10 x
Además, todos sabemos que el número 10 n tendrá (n+1) dígitos. Por lo tanto, 10 x tendrá (x+1) dígitos.
O podemos decir que 2 n tendrá (x+1) dígitos como 2 n = 10 x .
Por lo tanto, número de dígitos en 2 n = (nlog 10 2) + 1
A continuación se muestra la implementación de la idea anterior:
C++
// CPP program to find number of digits // in 2^n #include <bits/stdc++.h> using namespace std; // Function to find number of digits // in 2^n int countDigits(int n) { return (n * log10(2) + 1); } // Driver code int main() { int n = 5; cout << countDigits(n) << endl; return 0; }
Java
// Java program to find number // of digits in 2^n import java.util.*; class Gfg { // Function to find number of digits // in 2^n static int countDigits(int n) { return (int)(n * Math.log10(2) + 1); } // Driver Code public static void main(String args[]) { int n = 5; System.out.println(countDigits(n)); } } // This code is contributed by Niraj_Pandey.
Python3
# Python3 program to find # number of digits in 2^n import math # Function to find number # of digits in 2^n def countDigits(n): return int(n * math.log10(2) + 1); # Driver code n = 5; print(countDigits(n)); # This code is contributed # by mits
C#
// C# program to find number // of digits in 2^n using System; class GFG { // Function to find // number of digits in 2^n static int countDigits(int n) { return (int)(n * Math.Log10(2) + 1); } // Driver code static void Main() { int n = 5; Console.Write(countDigits(n)); } } // This code is contributed by // Manish Shaw(manishshaw1)
PHP
<?php // PHP program to find // number of digits in 2^n // Function to find number // of digits in 2^n function countDigits($n) { return intval($n * log10(2) + 1); } // Driver code $n = 5; echo (countDigits($n)); // This code is contributed by // Manish Shaw(manishshaw1) ?>
Javascript
<script> // JavaScript program to find number // of digits in 2^n // Function to find number of digits // in 2^n function countDigits(n) { return (n * Math.log10(2) + 1); } // Driver code let n = 5; document.write(Math.floor(countDigits(n))); // This code is contributed by souravghosh0416. </script>
Producción:
2
Complejidad de tiempo: O(n)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por Smitha Dinesh Semwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA