Posted on 2012-09-23 16:35
hoshelly 阅读(236)
评论(0) 编辑 收藏 引用 所属分类:
Programming
给你两个数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;
}