随笔-141  评论-9  文章-3  trackbacks-0
先进制转换,再判断是不是回文。

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


#include 
<fstream>
#include 
<iostream>

using namespace std;


void transform(int s, int b, char* k){
    
int j=0;
    
char t[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    
while(s!=0){
        k[j] 
= t[s%b];
        s 
= s/b;
        
++j;
    }

    k[j]
='\0';
    
    
char* a;
    
for(a=k+j-1; k<a; a--,k++){
        
char ch = *a;
        
*= *k;
        
*= ch;
    }

}


int isPal(char* s){
    
int len = 0;
    
char* r = s;
    
while(*r!='\0'){
        len
++;
        r
++;
    }

    
char* t;
    
for(t=s+len-1; s<t; s++,t--)
        
if(*s!=*t)
            
return 0;
    
return 1;
}


int main(){
    
int b;
    
char k[100];
    
char a[100];
    ifstream 
in("palsquare.in");
    ofstream 
out("palsquare.out");

    
in>>b;

    
for(int i=1; i<=300; i++){
        transform(i
*i, b, k);
        
if(isPal(k)){
            transform(i,b,a);
            
out<<a<<" "<<k<<endl;
        }

    }

    
return 0;
}
posted on 2010-11-09 00:54 小阮 阅读(146) 评论(0)  编辑 收藏 引用 所属分类: USACO

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理