计数问题

给你两个数a和b,你的任务是计算出1在a和b之间出现的次数,比如说,如果a=1024,b=1032,那么a和b之间的数就是:

1024 1025 1026 1027 1028 1029 1030 1031 1032

则有10个1出现在这些数中。

Input

输入不会超过500行。每一行有两个数a和b,a和b的范围是0 < a, b < 100000000。输入两个0时程序结束,两个0不作为输入样例。

Output

对于每一对输入的a和b,输出一个数,代表1出现的个数。

Sample Input


1 10
44 497
346 542
1199 1748
1496 1403
1004 503
1714 190
1317 854
1976 494
1001 1960
0 0

Sample Output

2
185
40
666
113
105
1133
512
1375
1256


#include<stdio.h>
#include< string.h>
int Find_OneNum( long a)
{
     long i,b,count=0;
     while(a)
    {
        b=a%10;
         if(b == 1)
        {
            count++;
        }
        a=a/10;
    }
     return count;
}
int main()
{
     long a,b,i,sum;
     while((scanf("%ld%ld",&a,&b) == 2),a)
    {
         if(a>b)
        {
             int temp;
            temp=a;
            a=b;
            b=temp;
        }
        sum=0;
     for(i=a;i<=b;i++)
    {
        sum += Find_OneNum(i);
    }
    printf("%ld\n",sum);
    }
     return 0;
}

你可能感兴趣的:(计数问题)