1 条题解

  • 0
    @ 2023-1-14 11:51:09

    本题非常简单,就这句话有点坑人:

    然后找出前N个满足大于S且在两种或两种以上进制(二进制至十进制)上是回文数的十进制数,输出到文件上。

    注意,是大于S!!!

    ACAC CodeCode:

    #include <bits/stdc++.h>
    using namespace std;
    int n , s;
    string conversion(int x , int c)//进制转换
    {
        string ans;
        while (x > 0)
        {
            ans += x % c + '0';
            x /= c;
        }
        return ans;
    }
    
    bool check(string s)//判断回文数
    {
        int i = 0 , j = (int)s.length() - 1;
        while (i <= j)
        {
            if (s[i] != s[j])
                return false;
            i++;
            j--;
        }
        return true;
    }
    
    int main()
    {
        cin >> n >> s;
        int x = s + 1;//初始化为s+1!
        while (n)
        {
            int sum = 0;
            for (int i = 2 ; i <= 10 ; i++)
                if (check(conversion(x , i)))
                    sum++;
            if (sum >= 2)
            {
                n--;
                cout << x << endl;
            }
            x++;
        }
        return 0;
    }
    
    • 1

    信息

    ID
    1593
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    24
    已通过
    10
    上传者