每日学习一算法【1】统计数字问题
来源:互联网 发布:宜宾网络电视台 编辑:程序博客网 时间:2024/05/18 03:46
问题描述:一本书的页码从自然数1开始顺序编码直到自然数n。书的页码按照通常习惯编排,没个页码都不含有多余的前导数字0.例如,第6页用数字6表示,而不是06或者006等。要求计算书的全部页码中分别用到多少次数字x(x=1,2,3……9)。
详细解释
// 计算数字 X 在 1-n 中出现的次数。int count(int n, int x) { int cnt = 0, k; for (int i = 1;k = n / i;i *= 10) { // 高位的数字。 int high = k / 10; if (x == 0) { if (high) { high--; } else { break; } } cnt += high * i; // 当前位的数字。 int cur = k % 10; if (cur > x) { cnt += i; } else if (cur == x) { // n - k * i 为低位的数字。 cnt += n - k * i + 1; } } return cnt;}
0 0
- 每日学习一算法【1】统计数字问题
- 统计数字问题算法1
- 算法1-1:统计数字问题
- 算法1 —统计数字问题
- 每日学习: 统计数字会说谎
- 算法-------统计数字问题
- 统计数字问题算法
- 算法设计:统计数字问题
- 每日学习一算法【4】01背包问题
- 1-1统计数字问题
- 每日一算法:汉内塔问题(递归算法)
- 每日学习一算法【2】A*算法
- 算法每日一练1
- 每日一算法,递推:汉诺塔问题
- 每日一算法:三色旗问题
- 每日一算法:骑士遍历问题
- 每日一算法:八皇后问题
- 算法学习每日一练0
- JAVA线程方法
- memcached内存管理
- POJ 1028 小细节没处理好,没想好
- 黑马程序员---Foundation框架
- C++参考书(上篇)
- 每日学习一算法【1】统计数字问题
- Python学习之路——变量赋值
- Andoroid自定义Adapter的listView
- 使用脚本检测域名是否被注册了
- c++ 调用 wget 下载网页图片
- 浙江大学PAT_乙级_1036. 跟奥巴马一起编程(15)
- Freda的道路
- 网络赚钱 签到就可以赚钱的网赚 持续更新
- Linux下rootkit-ddrk攻击获得root权限以及清除方法