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 = 99Entrada: 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>
99
Complejidad de tiempo: O(N)