1 条题解

  • 0
    @ 2024-9-13 13:49:02

    参考答案:

    #include<iostream>
    #include<cmath>
    using namespace std;
    int a, b;
    int f(int x)
    {
        int res = 0;
        while (x)
        {
            res++;
            x /= 10;
        }
        return res;
    }
    int cal(int i, int x)
    {
        int res = 0;
        int sum = f(x);
        for (int j = 1; j <= sum; ++j)
        {
            int p = pow(10, j - 1), l = x / p / 10, r = x % p, pj = x / p % 10;
            if (i) res += l * p;
            if (!i) res += (l - 1) * p;
            if (pj > i) res += p;
            if (pj == i) res += r + 1;
        }
        return res;
    }
    int main()
    {
        while (cin >> a >> b, a && b)
        {
            if (a > b) swap(a, b);
            for (int i = 0; i <= 9; ++i)
            {
                cout << cal(i, b) - cal(i, a - 1) << ' ';
            }
            cout << endl;
        }
        return 0;
    }
    
    • 1

    信息

    ID
    5361
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    4
    已通过
    1
    上传者