首页 > 后端开发 > C++ > 正文

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

王林
发布: 2023-08-29 15:01:05
转载
545人浏览过

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

立即学习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 <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;
}
登录后复制

输出

如果你运行上述代码,你将得到以下结果。

3
登录后复制

以上就是在C++中,将给定的四个数字组成的第n个数字的位数的详细内容,更多请关注php中文网其它相关文章!

c++速学教程(入门到精通)
c++速学教程(入门到精通)

c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
相关标签:
来源:tutorialspoint网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号