zzuli 1661--0的个数

来源:互联网 发布:欧姆龙plc网络通信 编辑:程序博客网 时间:2024/03/29 21:15
#include<stdio.h>typedef __int64 lint;lint jie[]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000,10000000000};lint count(lint n){int i;lint sum=0,left,m;for(i=1;i<11;i++){left=n/jie[i]-1;//没有算最大的那个sum+=left*jie[i-1];m=(n%jie[i]-n%jie[i-1])/jie[i-1];if(m>0)//若大于他,前边的可以都算上sum+=jie[i-1];else if(m==0) sum+=n%jie[i-1]+1;//否则,有几个算几个,+1是因为000的情况if(n<jie[i])return sum;}}int main(){int t;lint a,b;scanf("%d",&t);while(t--){scanf("%I64d%I64d",&a,&b);printf("%I64d\n",count(b)-count(a-1));}}

原创粉丝点击