NOIP2013T1 记数问题

var
    a,d,i,t,x:longint;
begin
    assign(input,'count.in'); reset(input);
    assign(output,'count.out'); rewrite(output);
    readln(a,d);
    for i:=1 to a do
    begin
        t:=i;
        while t>0 do
        begin
            if t mod 10=d then inc(x);
            t:=t div 10;
        end;
    end;
    writeln(x);
    close(input); close(output);
end.

 

 

#include<cstdio>
using namespace std;
int main(){
    int a[1000000],t,n,x,i;
    scanf("%d%d",&n,&x);
    for(i=1;i<=n;++i){
        a[i]=a[i/10]+(i%10==x);
        t=t+a[i];
    }
    printf("%d\n",t);
    return 0;
}

 

posted @ 2014-10-23 13:12  qilinart  阅读(131)  评论(0编辑  收藏  举报