剑指offer31——1到n中1出现的次数
来源:互联网 发布:编曲软件 好坏 编辑:程序博客网 时间:2024/05/30 04:38
class Solution {public: int NumberOf1Between1AndN_Solution(int n) { if(n<0) return 0; char strN[50]; sprintf(strN,"%d",n); return NumberOf1(strN); } int NumberOf1(const char* strN){ if(!strN||*strN<'0'||*strN>'9'||*strN=='\0') return 0; int first = *strN-'0'; unsigned int length = static_cast<unsigned int>(strlen(srtN)); if(first==0&&length==1) return 0; else if(first==1&&length==1) return 1; else{ int numFirstDigit = 0; if(first>1) numFirstDigit = PowerBase10(length-1); else numFirstDigit = atoi(strN+1)+1; int numOtherDigits = first*(length-1)*PowerBase10(length-2); int numRecursive = NumberOf1(strN+1); return numRecursive+numOtherDigits+numFirstDigit; } } int PowerBase10(unsigned int n){ int result = 1; int i=0; for(;i<n;i++) result *= 10; return result; }};
0 0
- 剑指offer31——1到n中1出现的次数
- 剑指offer 面试题32—从1到n整数中1出现的次数
- 《剑指offer》——整数中1出现的次数(从1到n整数中1出现的次数)
- 剑指offer——整数中1出现的次数(从1到n整数中1出现的次数)
- 剑指offer——整数中1出现的次数(从1到n整数中出现1的次数)可优化
- 剑指Offer——(31)整数中1出现的次数(从1到n整数中1出现的次数)
- 剑指Offer—31—整数中1出现的次数(从1到n整数中1出现的次数)
- 1到n的正数中1出现的次数
- 整数中1出现的次数(从1到n整数中1出现的次数)
- 整数中1出现的次数(从1到n中出现的次数)
- 面试题32—从1到n整数中1出现的次数
- 从1到N正数中1出现的次数
- Algorithm - 1到n中1出现的次数
- 1到n中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 计算从1到N中,1出现的次数
- 从1到n整数中1出现的次数
- Yii2.0 advanced如何添加新项目(添加application)
- mysql 命令集合添加 --mysql5.5.31
- zabbix_get, zabbix_sender手动调测监控数据
- HttpContext.Current.Session 和 Session 的区别
- 使用treeSet报cannot be cast to java.lang.Comparable
- 剑指offer31——1到n中1出现的次数
- Chrome 中的 JavaScript 断点设置和调试技巧
- iOS UI基础学习 Note_dayThree
- Codeforces Round #259 (Div. 1) B. Little Pony and Harmony Chest(状压dp)
- POJ 2406(连续重复子串)
- bootstrap放大缩小后变形的解决办法
- GANs学习系列(9):DCGAN对抗卷积神经网络总结
- 晨魅--简单的PHP小示例题
- 自定义View实现抽奖转盘