1 条题解

  • 0
    @ 2023-3-13 12:04:27

    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

    信息

    ID
    1995
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者