统计1..n 中出现了多少个数字
2012-11-11 23:36
225 查看
如 1,2,3,...10出现11个数字,1,2,3..11出现了13个数字。
现在知道出现d个数字,求n,如果d非法,输出impossible。
算法的思想是:计算n = 9, 99, 999...这些长度为1,2,3...的各个数的出现的数字个数,反推d。
现在知道出现d个数字,求n,如果d非法,输出impossible。
算法的思想是:计算n = 9, 99, 999...这些长度为1,2,3...的各个数的出现的数字个数,反推d。
int calc_from_number_of_digits(int d) { if(d < 9) return d; int n = 0; int last_n = 0; int len = 1; while(d > n) { last_n = n; n += (pow(10, len) - (len > 1? pow(10, len - 1):1)) * len ; len++; } if((d - last_n) % (len - 1) == 0) return int( pow(10, len - 2) - 1 + int((d - last_n)/(len - 1)) ); else //printf("Impossible\n"); return -1; }
相关文章推荐
- 统计一个数字在排序数组中出现的次数。 数组是排序的,只需要找到第一个K和最后一个K就可以知道有多少个,
- 统计某个文件中出现的字符个数,数字个数,空格个数,总共有多少行?
- 统计数字在排序数组中出现的次数
- 在命令行任意输入一组数字(0~9),然后统计这组数据中每个数字出现的个数,然后将统计个数逆序输出
- python-统计句子中有多少数字方法
- 统计一个数字在排序数组中出现的次数(二分法)
- 统计字符串出现数字的个数
- 统计1到n之间的所有数字中1出现的个数
- 4.5统计字符串中数字和字母出现的次数,将结果写入文件
- 练习三:统计字符串中字符中 大写字符 小写字符 数字 其他字符 出现的次数
- 统计数字在排序数组中出现的次数
- 随机产生50个30到35的整数,统计每个数字出现的次数(TreeMap实现),输出时按照数字的降序排列,并且统计出现次数最多的数字和它的次数。
- numpy 统计数组每一行出现次数最多的数字
- 第十六周上机项目1:统计每一个数字字符出现的次数
- 统计字符串中:各个数字、空白字符、以及其他所有字符出现的次数
- 统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数
- 面试常备题(四)---统计数组中出现的所有数字的个数
- 统计一个数字在排序数组中出现的次数(二分法)
- 第13周项目--统计每一个数字出现的个数
- 剑指offer-38 统计一个数字在排序数组中出现的次数