Número de dígitos en 2 elevado a la potencia n

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *