1 条题解

  • 0
    @ 2024-12-22 11:04:02

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    int n;
    char a[400];
    int did(int data)
    {
        int ans=0;
        memset(a,'\0',sizeof(a));
        while(data){
            int kk=data%n;
            data=data/n;
            if (kk<10){
                a[ans++]=kk+'0';
            } else a[ans++]=kk-10+'A';
        }
        for (int i=0;i<ans/2;i++){
            if (a[i]!=a[ans-1-i]){
                return 0;
            }
        }
        return 1;
    }
    void pri(int data)
    {
        stack<char>sta;
        while(data){
            int kk=data%n;
            data=data/n;
            if (kk<10){
                sta.push(kk+'0');
            } else sta.push(kk-10+'A');
        }
        while(sta.size()){
            printf("%c",sta.top());
            sta.pop();
        }
    }
    int main()
    {
        while(scanf("%d",&n)!=EOF){
            for (int i=1;i<=300;i++){
                if (did(i*i)){
                    pri(i);
                    printf(" %s\n",a);
                }
            }
        }
        return 0;
    }
    
    
    • 1

    信息

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