问题标题: 酷町堂:1432   计数问题

0
0
已解决
王光裕
王光裕
资深光能
资深光能

1432   计数问题

题目描述 Description

试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1

到 11 中,即在 1、2、3、4、5、6、7、8、9、10、11 中,数字 1 出现了 4 次。

输入描述 Input Description

输入格式:
输入文件名为 count.in。

输入共 1 行,包含 2 个整数 n、x,之间用一个空格隔开。

输出描述 Output Description

输出格式:
输出文件名为 count.out。

输出共 1 行,包含一个整数,表示 x 出现的次数。

样例输入 Sample Input

 

输入样例#1:
11 1

样例输出 Sample Output

 

输出样例#1:
4

数据范围及提示 Data Size & Hint

对于 100%的数据,1≤ n ≤ 1,000,000,0 ≤ x ≤ 9。


0
已采纳
张睿杰
张睿杰
初级天翼
初级天翼

这题就是把每个数拆分,然后用数组统计而已,一般写法不会超时

具体程序如下

cin>>n>>x;//读入数据
for(int i=1;i<=n;i++)//循环从1到n
{
    int h=i;//因为要分解,所以不能是循环变量,定义一个临时存数
    while(h!=0)//分解当时这个数
    {
        a[h%10]++;//这个很巧妙,仔细看
        h/=10;//除10
    }
}
cout<<a[x]<<endl;//最后输出就可以了

定义

int a[10];//10个数码,从0到9
int n,x;

 

0
王学庚
王学庚
初级光能
初级光能
   cin>>n>>e;
    for(i=e;i<=n;i++)
    {
        t=i;
        while(t!=0)
        {

        if(t%10==e)
        s++;
        t=t/10;
    }
     }
     cout<<s; 

核心

s要赋值0

望采纳

0
0
刘景程
刘景程
新手光能
新手光能
{
    long long n,i,x,b,c,t=0;
    输入>>n>>x;//输入范围与要查的数字;
    for(i=1;i<=n;i++)//一到n进行循环;
    {
        b=i;//为了不改变i的值,就把i赋值给一个数;
        while(b!=0)//如果b不等于0,继续循环;
        {
            c=b%10;//求是否是x,是的话计数器加一;
            b=b/10;//求下一个数字是否为x;
            if(c==x) t++;//计数器加一;
        }
    }
    cout<<t<<endl;//输出计数器的数字;
    return 0;//结束
}

 

0
我要回答