- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
Physics
Chemistry
Biology
Mathematics
English
Economics
Psychology
Social Studies
Fashion Studies
Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Number of digits in the nth number made of given four digits in C++
We need to find 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.
Let's see an example
Input
7
Output
2
The 7th number in the series is 13 and the number of digits in it is 2.
Algorithm
- Initialise the number n.
- Initialise two variables one to store result and another one to store total sum of numbers in the series.
- Create a loop that increased the iterative variable by the powers of 4.
- Add the current number to the sum variable.
- If the total sum is greater than n, then break the loop.
- Add 1 to the result as next set of number will have one digit extra than previous set of numbers.
- Return the result.
Implementation
Following is the implementation of the above algorithm in C++
#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
Advertisements