整数中1出现的次数(从1到n整数中1出现的次数)
来源:互联网 发布:万能看图王pdf 软件 编辑:程序博客网 时间:2024/05/19 01:33
题目描述
求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数。
#include <iostream>using namespace std;int Power10Base(int length){int result =1;for(int i =0 ;i < length;i++)result *= 10;return result;}int NumberOf1(char* str){if(!str || *str < '0' || *str > '9' || str == '\0')return 0;int first = *str -'0';int length = strlen(str);if(first == 0 && length == 1)return 0;if(first == 1 && length == 1)return 1;int NumberOfFirst = 0;if(first > 1)NumberOfFirst = Power10Base(length -1);else if(first == 1)NumberOfFirst = atoi(str + 1) + 1;int NumberOfOthers = first * (length -1) * Power10Base(length -2);int NumberRecurse = NumberOf1(str + 1);return (NumberOfFirst + NumberOfOthers + NumberRecurse);}int NumberOf1Between1AndN(unsigned int n){if(n < 0)return 0;char str[50];sprintf(str,"%d",n);return NumberOf1(str);}
// ====================测试代码====================void Test(char* testName, int n, int expected){ if(testName != NULL) printf("%s begins: \n", testName); if(NumberOf1Between1AndN(n) == expected) printf("Solution2 passed.\n"); else printf("Solution2 failed.\n"); printf("\n");}void Test(){ Test("Test1", 1, 1); Test("Test2", 5, 1); Test("Test3", 10, 2); Test("Test4", 55, 16); Test("Test5", 99, 20); Test("Test6", 10000, 4001); Test("Test7", 21345, 18821); Test("Test8", 0, 0);}int main(int argc, char* argv[]){ Test(); return 0;}
0 0
- 整数中1出现的次数(从1到n整数中1出现的次数)
- 整数中1出现的次数(从1到n中出现的次数)
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到n整数中1出现的次数
- 从1到 n整数中1出现的次数
- 淘宝核心系统团队的产品线
- eclipse修改dynamic web module version
- 埃拉托斯特尼筛法求素数表
- 用户控件添加贝塞尔 曲线不显示问题
- NYOJ 53 不高兴的小明
- 整数中1出现的次数(从1到n整数中1出现的次数)
- Java____Eclipse下JUnit单元测试(中级)
- Win7脱机文件夹同步取消与功能屏蔽
- NYOJ 54 小明的存钱计划
- 排序算法总结
- 苹果的 CoreData
- runtime 运行时机制 完全解读
- poj 3621 Sightseeing Cows 【最优比例环】 【0-1分数规划 + SPFA判负环】
- 调试