USACO 1.2.4 Palindromic Squares


/*
PROG: palsquare
LANG: C++
*/

#include 
< iostream >
#include 
< fstream >
#include 
< string >
#include 
< cmath >
using   namespace  std;
ifstream fin(
" palsquare.in " );
ofstream fout(
" palsquare.out " );
int  B;
char  c[ 32 ];
bool  hui( char  c[], int  l)
{
    
int i=1;
    
while( c[i]==c[l])
     i
++,l--;
    
if( i>=l) return true;
    
else return false;
}

void  output( int  p, char  c[], int  l)
{
    
char a[32],k=0;
    
while( p>0)
    
{
        k
++;
        a[k]
=p%B;
        
if(a[k]<10)a[k]+=48;
            
else a[k]=a[k]-10+65;
        p
/=B;
    }

    
for(;k>0;k--) fout<<a[k];
        fout
<< ' ';
    
for(int i=1;i<=l;i++) fout<<c[i];
        fout
<<endl;
}

void  check( int  num)
{
    
int p=num*num,k=0;
    
while( p>0)
    
{
        k
++;
        c[k]
=p%B;
        
if(c[k]<10)c[k]+=48;
            
else c[k]=c[k]-10+65;
        p
/=B;
    }

    
if( hui (c,k)) output( num,c,k);
}

int  main()
{
    fin
>>B;
    
for(int i=1;i<=300;i++)
      check(i);
    
   
return 0;
}

 
Compiling...
Compile: OK

Executing...
      Test 
1 : TEST OK [ 0.004  secs]
      Test 
2 : TEST OK [ 0.004  secs]
      Test 
3 : TEST OK [ 0.004  secs]
      Test 
4 : TEST OK [ 0.004  secs]
      Test 
5 : TEST OK [ 0.004  secs]
      Test 
6 : TEST OK [ 0  secs]
      Test 
7 : TEST OK [ 0  secs]
      Test 
8 : TEST OK [ 0.004  secs]

All tests OK.

YOUR PROGRAM (
' palsquare ' ) WORKED FIRST TIME !
 That
' s fantastic -- and a rare thing. 
Please accept these special automated congratulations. 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值