在C++中,将给定的四个数字组成的第n个数字的位数

2023年 8月 29日 54.0k 0

在C++中,将给定的四个数字组成的第n个数字的位数

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
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

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论