【HNUST】ADA IV型数
浏览 945 | 评论 0 | 字数 3172
TTQ
2020年02月09日
  • 原题题号:1603
    • 题目描述
    Ada三岁了,会掰着指头数数了.她的爸爸既是欢喜,又杂着忧愁.欢喜的是,教了她三年,终于会数了.
    忧的是,Ada对数字实在不敏感啊!Ada的爸爸又准备了新的题目训练她. ADA IV型数的定义如下:
    把一个正整数的各个位上的数字依次组成一个数列,如果该数列是等差数列,则该数为ADA IV型数.如13579和2468都是ADA IV型数,153和246810都不是ADA IV型数.为了避免不必要的麻烦,规定区间[1,99]的数均为ADA IV型数.
    给定一个区间[A,B],其中1<=A<=B<=1000000000,问该区间含有多少个ADA IV型数.这个问题对ADA来说显然太难了,但是我想你行的,试一试吧。
    • 输入
    由多组测试数据组成, 组数不超过100。
    每一组测试数据仅有一行,只包含由空格分开的整数A和B。
    • 输出
    对于每一组测试数据,输出对应区间的ADA IV型数的总数目,每组一行。
    • 样例输入
    1 100
    112 160
    • 样例输出
    99
    4
    就直接暴力打表,造福后代吧=-=。代码如下:
    #include <iostream>
    #include <cstdio>
    #include <vector>
    using namespace std;
    int main()
    {
        vector<int>num{
            111,       123,       135,       147,       159,       210,
            222,       234,       246,       258,       321,       333,
            345,       357,       369,       420,       432,       444,
            456,       468,       531,       543,       555,       567,
            579,       630,       642,       654,       666,       678,
            741,       753,       765,       777,       789,       840,
            852,       864,       876,       888,       951,       963,
            975,       987,       999,       1111,      1234,      1357,
            2222,      2345,      2468,      3210,      3333,      3456,
            3579,      4321,      4444,      4567,      5432,      5555,
            5678,      6420,      6543,      6666,      6789,      7531,
            7654,      7777,      8642,      8765,      8888,      9630,
            9753,      9876,      9999,      11111,     12345,     13579,
            22222,     23456,     33333,     34567,     43210,     44444,
            45678,     54321,     55555,     56789,     65432,     66666,
            76543,     77777,     86420,     87654,     88888,     97531,
            98765,     99999,     111111,    123456,    222222,    234567,
            333333,    345678,    444444,    456789,    543210,    555555,
            654321,    666666,    765432,    777777,    876543,    888888,
            987654,    999999,    1111111,   1234567,   2222222,   2345678,
            3333333,   3456789,   4444444,   5555555,   6543210,   6666666,
            7654321,   7777777,   8765432,   8888888,   9876543,   9999999,
            11111111,  12345678,  22222222,  23456789,  33333333,  44444444,
            55555555,  66666666,  76543210,  77777777,  87654321,  88888888,
            98765432,  99999999,  111111111, 123456789, 222222222, 333333333,
            444444444, 555555555, 666666666, 777777777, 876543210, 888888888,
            987654321, 999999999};
        int ans = 0;
        int a, b;
        while (cin >> a >> b)
        {
            if(a<=99)
                ans += 100 - a;
            if(b<=99)
                ans -= 99 - b;
            for(auto i:num)
            {
                if(i>=a&&i<=b)
                    ans++;
                else if(i>b)
                    break;
            }
            cout << ans << endl;
            ans = 0;
        }
        return 0;
        //system("pause");
    }
    本文作者:TTQ
    本文链接:https://blog.ponder.fun/archives/23.html
    最后修改时间:2020-02-09 13:19:38
    本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!
    评论
    与本文无关评论请发留言板。请不要水评论,谢谢。
    textsms
    支持 Markdown 语法
    email
    link
    评论列表
    暂无评论