Number of digits in the nth number made of given four digits in C++

C++Server Side ProgrammingProgramming

In this tutorial, we are going to write a program that finds the number of digits in the nth number made of given four digits 1, 2, 3, and 4.

The series with the above four digits is as follows

1, 2, 3, 4, 11, 12, 13, 14, 21, 22, 23, 24...

We need to find the number of digits of the nth number from the above series. If you carefully observe the pattern, you will find the following points.

  • There are 4 numbers with digits 1.

  • There are 16 numbers with digits 2.

  • The pattern continues as the powers of 4.

Create a loop which increased the iterative variable by the powers of 4. And count the number of iterations until the sum of all seen numbers is not greater than the given number n.

Example

Let's see the code.

 Live Demo

#include <bits/stdc++.h>
using namespace std;
int getDigitsCount(int n) {
   int i, result = 1, sum = 0;
   for (i = 4; ; i *= 4) {
      sum += i;
      if (sum >= n) {
         break;
      }
      result += 1;
   }
   return result;
}
int main() {
   int n = 57;
   cout << getDigitsCount(n) << endl;
   return 0;
}

Output

If you run the above code, then you will get the following result.

3

Conclusion

If you have any queries in the tutorial, mention them in the comment section.

raja
Published on 03-Jul-2021 05:01:15
Advertisements