All possible numbers of N digits and base B without leading zeros

Given number of digits ‘N’ and base ‘B’, the task is to count all the ‘N’ digit numbers without leading zeros that are in base ‘B’.

Examples:

Input: N = 2, B = 2
Output: 2
All possible numbers without 
leading zeros are 10 and 11.

Input: N = 5, B = 8
Output: 28672

Approach:

  • If the base is ‘B’ then every digit of the number can take any value within the range [0, B-1].
  • So, B^{N} ‘N’ digit numbers are possible with base ‘B’ (including the numbers with leading zeros).
  • And, if we fix the first digit as ‘0’ then the rest of the ‘N-1’ digits can form a total of B^{(N-1)} numbers.
  • So, total number of ‘N’ digit numbers with base ‘B’ possible without leading zeros are B^{N} – B^{(N-1)}.

Below is the implementation of above Approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ implementation of the approach
#include <bits/stdc++.h>
using namespace std;
  
// function to count
// all permutations
void countPermutations(int N, int B)
{
    // count of
    // all permutations
    int x = pow(B, N);
  
    // count of permutations
    // with leading zeros
    int y = pow(B, N - 1);
  
    // Return the permutations
    // without leading zeros
    cout << x - y << "\n";
}
  
// Driver code
int main()
{
  
    int N = 6;
    int B = 4;
  
    countPermutations(N, B);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java implementation of the approach
  
class GFG
{
// function to count
// all permutations
static void countPermutations(int N, int B)
{
    // count of
    // all permutations
    int x = (int)Math.pow(B, N);
  
    // count of permutations
    // with leading zeros
    int y = (int)Math.pow(B, N - 1);
  
    // Return the permutations
    // without leading zeros
    System.out.println(x - y);
}
  
// Driver code
public static void main(String[] args)
{
    int N = 6;
    int B = 4;
  
    countPermutations(N, B);
}
}
  
// This code is contributed by mits

chevron_right


Python3

# Python3 implementation of the approach

# function to count all permutations
def countPermutations(N, B):

# count of all permutations
x = B ** N

# count of permutations
# with leading zeros
y = B ** (N – 1)

# Return the permutations
# without leading zeros
print(x – y)

# Driver code
if __name__ == “__main__”:

N, B = 6, 4
countPermutations(N, B)

# This code is contributed by Rituraj Jain

C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# implementation of the approach
  
using System;
class GFG
{
// function to count
// all permutations
static void countPermutations(int N, int B)
{
    // count of
    // all permutations
    int x = (int)Math.Pow(B, N);
  
    // count of permutations
    // with leading zeros
    int y = (int)Math.Pow(B, N - 1);
  
    // Return the permutations
    // without leading zeros
    Console.WriteLine(x - y);
}
  
// Driver code
public static void Main()
{
    int N = 6;
    int B = 4;
  
    countPermutations(N, B);
}
}
  
// This code is contributed
// by Akanksha Rai(Abby_akku)

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP implementation of the approach 
  
// function to count all permutations 
function countPermutations($N, $B
    // count of all permutations 
    $x = pow($B, $N); 
  
    // count of permutations 
    // with leading zeros 
    $y = pow($B, $N - 1); 
  
    // Return the permutations 
    // without leading zeros 
    echo ($x - $y), "\n"
  
// Driver code
$N = 6; 
$B = 4; 
  
countPermutations($N, $B); 
  
// This code is contributed 
// by Sach_Code` 
?>

chevron_right


Output:

3072


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.