usaco_palsquare.cpp

来自「usaco自己做的1到5章的代码」· C++ 代码 · 共 76 行

CPP
76
字号
/*
ID:wangyuc2
PROG:palsquare
LANG:C++
*/
#include <iostream>
#include <fstream>
using namespace std;
int m;
ifstream fin("palsquare.in");
ofstream fout("palsquare.out");

void checked(int n)
{
     int a[50000],b[50000];
     int num,l=0;
     int i;
     bool yes=true;
     num=n*n;
     char ch;
     while(num>=m)
     {
         a[l]=num%m;
         num=num/m;
         l++;
     }
     a[l]=num;
     for(i=l;i>=0;i--) if(a[i]!=0) break; else l--;
     int l2=0;
     num=n;
     while(num>=m)
     {
         b[l2]=num%m;
         num=num/m;
         l2++;
     }
     b[l2]=num;
     for(i=l2;i>=0;i--) if(b[i]!=0) break; else l2--;
     for(i=0;i<=l/2;i++) if(a[i]!=a[l-i]) {yes=false; break;}
     if(yes) 
     {
            for(i=l2;i>=0;i--)
             {
                 if(b[i]<10) fout<<b[i];
                 else
                 {
                     ch=b[i]+55;
                     fout<<ch;
                 }
             }
             fout<<' ';
             for(i=l;i>=0;i--)
             {
                 if(a[i]<10) fout<<a[i];
                 else
                 {
                     ch=a[i]+55;
                     fout<<ch;
                 }
             }
              fout<<endl;
     }
    
}

int main()
{

    int i;
    fin>>m;
    for(i=1;i<=300;i++) checked(i);
    //system("PAUSE");
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?