思路对于一个数N,N的最高位数值为T,N长度为L ,那么我们可以吧N分为两个部分 ,令M=N-T*10^(L-1)+1, 分割为[0,M-1] 和 [M,A]两个部分,第一个部分可以用递归来求解,
第二个部分要计算了, 首先我们知道 000~999当中存在一的个数为 10^(L-1)*L,L为999的位长度, 那么就可以通过此来计算[M,A]中有多少个1了
#include#include #include using namespace std;int fun(int n){ //cout< <