注意的事项:是输出小于 10^n的正整数的个数哦!开始的时候总比样例输出多一个数,
dpI[n][m]表示的是第n位添加数字m(0....9)的构成单调递增数个数
dpD[n][m]表示的是第n位添加数字m(0....9)的构成单调递减数个数
for(int i=2; i<=100; ++i){
if(j!=0){//单调递增的数一定没有数字0,因为前边的数字最小为 1
for(int k=j; k<10; ++k){//单调递减的数字中可以有0,但是第二位为0时,第一位不能为0
if(i==2 && k==0) continue;
sum+=dpI[j][i]+dpD[j][i];
本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/3913685.html,如需转载请自行联系原作者