1 solutions

  • 0
    @ 2025-3-3 16:21:29

    C++ :

    #include<iostream>
    #include<cstdlib>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    int a[10000];
    int l1,l2;
    int hw()//判断回文的函数拉
    {
        for (int i=1;i<=l1/2;i++)
            if (a[i]!=a[l1-i+1])
                return 0;
        return 1;
    }
    int pd(int k,int n)//转化进制的小函数
    {
        l1=0;
        do
        {
            a[++l1]=k%n;
            k/=n;
        } while (k!=0);
        return 0;
    }
    int main()
    {
    
        int n,m;
        cin>>n>>m;
        int i=m+1;//这里要注意!!!
        int k=0;
        while(k<n)//K是记输出了几个数的计数器
        {
            int ans=0;
            for(int j=2;j<=10;j++)//从二进制到十进制一一枚举
            {
                memset(a,0,sizeof(0));//每次记得把这个数组清零
                pd(i,j);
                if(hw()==1)
                 {
                     ans++;
                 }
            }
            if(ans>=2)//如果有两种以上的进制是回文的,那么输出,K++
            {
                cout<<i<<endl;
                k++;
            }
            i++;
        }
        return 0;
    }
    
    • 1

    Information

    ID
    9981
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By