嗜血魂K

导航

1.2 Palindromic Squares

英语坑人。。。唯一想说的= =

没读懂题意,果断改了几次。。。

 

 

/*
ID:y7276571
LANG: C
TASK: palsquare
*/
#include<stdio.h>
#include<string.h>
#define MAXN 50
char alpha[] = {"0123456789ABCDEFGHIJKLMN"};
int ispal(char *s)
{
int i, len = strlen(s);
for(i = 0; i <= len/2; i++)
if(s[i] != s[len-i-1]) return 0;
return 1;
}
void convert(int n, int b, char *str)
{
int i = 0, len;
char c;
while(n)
{
str[i++] = alpha[n%b];
n /= b;
}
str[i] = '\0';
for(len = i, i= 0; i < (len+1)/2; i++)
{
c = str[i];
str[i] = str[len-i-1];
str[len-i-1] = c;
}
}
int main(void)
{
freopen("palsquare.in", "r", stdin);
freopen("palsquare.out", "w", stdout);
int i, b;
char s1[MAXN], s2[MAXN];
scanf("%d", &b);
for(i = 1; i <= 300; i++)
{
memset(s1, '\0', sizeof(s1));
memset(s2, '\0', sizeof(s2));
convert(i, b, s1);
convert(i*i, b, s2);
if(ispal(s2)) printf("%s %s\n", s1, s2);
}
return 0;
}

 

posted on 2011-11-04 12:52  嗜血魂K  阅读(184)  评论(0编辑  收藏  举报