NOIP2013普及组(1)计数问题

/*============================================================================
记数问题
(count.cpp/c/pas)
【问题描述】
试计算在区间 1 到 n 的所有整数中,数字 x (0 ≤ x ≤ 9)共出现了多少次?例如,在 1
到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次。
【输入】
输入文件名为 count.in。
输入共 1 行,包含 2 个整数 n、x,之间用一个空格隔开。
【输出】
输出文件名为 count.out。
输出共 1 行,包含一个整数,表示 x 出现的次数。
【输入输出样例】
count.in
11 1
count.out
4
【数据说明】
对于 100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。
==============================================================================*/

#include<stdio.h>
long CountX(int n,int x);
int main()
{
    int n,x;
    long result;
    scanf("%d%d",&n,&x);
    result=CountX(n,x);
    printf("%ld\n",result);
    return 0;
}
long CountX(int n,int x)
{
    int i,j;
    long result=0;
    for(i=1;i<=n;i++)
    {
        j=i;
        while(j>0)
        {
            if(j%10==x)
            {
                result++;
            }
            j=j/10;
        }
    }
    return result;
}

 

这个题有待改善算法策略……

 

posted on 2013-11-22 01:20  华山青竹  阅读(1457)  评论(0)    收藏  举报

导航