如 1,2,3,...10出现11个数字,1,2,3..11出现了13个数字。
现在知道出现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;
}
分享到:
相关推荐
数字计数问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2,…,9。 编程任务:给定表示书的总页码的10 进制整数n (1≤n≤10^9) 。编程计算书的全部页码中分别用到多少次数字0,1,2,…...
1.3.7. n 个数字(0,1,…,n-1)形成一个圆圈 .................................................. 53 1.3.8. 定义 Fibonacci 数列 ...............................................................................
数字统计问题要求对给定书的总页码,计算出书的全部页码中分别用到多少次数字0,1,2,3,.....9。 这个题目有个最容易想到的n*log10(n)的算法。这是自己写的复杂度为O(n*log10(n))的代码: void statNumber(int n) { ...
输入一个自然数n,求 ,同时统计结果中有多少个0。 最多可计算10000的阶乘
数字统计问题要求对给定书的总页码n,计算出书的全部页码中分别用到多少次数字0,1,2,3,…,9。 编程任务: 给定表示书的总页码的十进制整数n(1<<n)。编程计算书的全部页码中分别用到多少次数字0,1,2,3,…,9。 数据...
统计一个长整型数字中0-9分别出现的次数java 7count number.rar
该C++程序通过循环的方式,实现了统计从0~9、0~99、0~999、0~9999、0~99999 ······ 中数字8出现的次数。
统计n个英文字母和数字字符.exe
计算从1~n的奇数序列,统计3出现的次数,源于网络流传的一个段子。 实际上这题是Leetcode中一个题目的变种,即1~n中,1出现的次数。 该代码主要考虑缩减时间复杂性。其实原理与这个题目相同,稍作变化即可,把1换成...
统计数字问题要求对给定的书的全部页码中分别用多少次数字0,1,2,...,9. 算法设计:给定的给定表示书的总页码的10 进制整数n (1≤n≤109) 。编程计算书的全部页码中分别用到多少次数字0,1,2,…,9。 Input ...
统计1到n之间所有含1的数字个数f(n),并找出n以内最大的那个f(m)=m的值,f(n)的时间复杂度为O(logn),找最大的那个f(m)=m的值的时间复杂度为O(n)。 思路和一位叫深海蓝天的哥们一样,不过那哥们提供的程序当n=...
1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? ...... 7 2、Java 有没有 goto? .......................................................................................................
2、编程任务:给定表示书的总页码的十进制整数N(1<=N^9),计算书的全部页码中分别用到多少次数字0,1,2,……,9。 3、数据输入:输入数据由文件名为INPUT.TXT的文本文件提供。每个文件只有1行,给出表示书的总...
统计数字问题 给定一个数N求从1到N的这N个数中0,1,2,3,4,5,6,7,8,9这10个数字出现的次数 字典序问题 对于任意长度不超过6的升序字符串,迅速计算出它在上述字典中的编码。
给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出,次数相同时先输出值较小的数。 输入说明 输入的第一行包含一个整数n,表示给定数字的个数。 1 ≤ n ≤ 1000。 第二行包含n个整数,...
输入数字n,统计0~n中1的个数,如12,1,10,11,12带1的个数5个。(假定输入的数0~999)(数组法)
统计从1~n中,0,1,...,9这十个阿拉伯数字 出现的次数