Encuentre el conteo total de números hasta N dígitos en una base B dada

Dados dos enteros N y B , la tarea es encontrar el conteo de números naturales de Base B hasta N dígitos.

Ejemplos:  

Entrada: N = 2, B = 10 
Salida: 99 
Explicación: 
1, 2, 3, 4, 5, 6, 7, 8, 9 son números naturales de 1 dígito de base 10. 
10, 11, 12………99 son Números naturales de base 10 de 2 dígitos 
Entonces, total = 9 + 90 = 99

Entrada: N = 2, B = 16 
Salida: 255 
Explicación: 
Hay un total de 240 números hexadecimales de dos dígitos y 15 números hexadecimales de un dígito. 
Por lo tanto, 240 + 15 = 255. 
 

Planteamiento: Al observar detenidamente la cuenta de números con N dígitos en base B se forma una progresión geométrica siendo el primer término (B – 1) y una razón común de B .
Por lo tanto,  

N-ésimo término = Número de números naturales de N dígitos en Base B = (B – 1) * B N – 1 
 

Finalmente, el conteo de todos los números naturales en Base B hasta N dígitos se puede encontrar iterando un ciclo de 1 a N y calculando la suma del i -ésimo término usando la fórmula anterior. 

A continuación se muestra la implementación del enfoque anterior: 

C++

// C++ implementation to find the count
// of natural numbers upto N digits
 
#include <bits/stdc++.h>
 
using namespace std;
 
// Function to return the count of
// natural numbers upto N digits
int count(int N, int B)
{
    int sum = 0;
 
    // Loop to iterate from 1 to N
    // and calculating number of
    // natural numbers for every 'i'th digit.
    for (int i = 1; i <= N; i++) {
        sum += (B - 1) * pow(B, i - 1);
    }
    return sum;
}
 
// Driver Code
int main()
{
    int N = 2, B = 10;
    cout << count(N, B);
 
    return 0;
}

Java

// Java implementation to find the count
// of natural numbers upto N digits
 
class GFG{
 
// Function to return the count of
// natural numbers upto N digits
static int count(int N, int B)
{
    int sum = 0;
 
    // Loop to iterate from 1 to N
    // and calculating number of
    // natural numbers for every 'i'th digit.
    for (int i = 1; i <= N; i++){
        sum += (B - 1) * Math.pow(B, i - 1);
    }
    return sum;
}
 
// Driver Code
public static void main(String[] args)
{
    int N = 2, B = 10;
    System.out.print(count(N, B));
}
}
 
// This code is contributed by gauravrajput1

Python3

# Python3 implementation to find the count
# of natural numbers up to N digits
 
from math import pow
 
# Function to return the count of
# natural numbers upto N digits
def count(N, B):
    sum = 0
 
    # Loop to iterate from 1 to N
    # and calculating number of
    # natural numbers for every 'i'th digit.
    for i in range(1, N+1):
        sum += (B - 1) * pow(B, i - 1)
    return sum
 
# Driver Code
if __name__ == '__main__':
    N = 2
    B = 10
    print(int(count(N, B)))
 
# This code is contributed by Bhupendra_Singh

C#

// C# implementation to find the count
// of natural numbers upto N digits
using System;
using System.Collections.Generic;
class GFG{
 
// Function to return the count of
// natural numbers upto N digits
static int count(int N, int B)
{
    int sum = 0;
 
    // Loop to iterate from 1 to N
    // and calculating number of
    // natural numbers for every
    // 'i'th digit.
    for(int i = 1; i <= N; i++)
    {
       sum += (int)((B - 1) * Math.Pow(B, i - 1));
    }
    return sum;
}
 
// Driver Code
public static void Main(String[] args)
{
    int N = 2, B = 10;
     
    Console.Write(count(N, B));
}
}
 
// This code is contributed by amal kumar choubey

Javascript

<script>
 
// Javascript implementation to find the count
// of natural numbers upto N digits
 
// Function to return the count of
// natural numbers upto N digits
function count(N, B)
{
    var sum = 0;
 
    // Loop to iterate from 1 to N and
    // calculating number of natural
    // numbers for every 'i'th digit.
    for(var i = 1; i <= N; i++)
    {
        sum += (B - 1) * Math.pow(B, i - 1);
    }
    return sum;
}
 
// Driver code
var N = 2, B = 10;
 
document.write(count(N, B));
 
// This code is contributed by Ankita saini
    
</script>
Producción: 

99

 

Complejidad de tiempo: O(N)
 

Publicación traducida automáticamente

Artículo escrito por spp____ 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 *