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.
立即学习“C++免费学习笔记(深入)”;
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输出
如果你运行上述代码,你将得到以下结果。
3登录后复制
以上就是在C++中,将给定的四个数字组成的第n个数字的位数的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2585252.html