在 C++ 中由给定的四位数字组成的第 n 个数字中的位数
在本教程中,我们将编写一个程序,计算由给定的四位数字1、2、3和4组成的第n个数字中的位数。
上面四位数字的序列如下
1,2,3,4,11,12,13,14,21,22,23,24...
我们需要从上述系列中找出第n个数字的位数。如果仔细观察图案,您会发现以下几点。
有4个数字,数字为1。
有16个数字,数字为2。
该模式继续作为4的幂。
创建一个循环,将迭代变量增加4的幂。并计算迭代次数,直到所有看到的数字的总和不大于给定的数字n。
示例
让我们看看代码。
#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 << getDigitsCount(n) << endl; return 0; }
如果你运行上面的代码,那么你会得到下面的结果。
3
结论
如果您对本教程有任何疑问,请在评论部分提及。