天之道

享受编程的乐趣。
posts - 118, comments - 7, trackbacks - 0, articles - 0
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

计数问题

Posted on 2012-09-23 16:35 hoshelly 阅读(226) 评论(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;
}

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理