http://pat.zju.edu.cn/contests/pat-a-practise/1019
判断字符串是否对称。可用栈实现,前一半入栈,后一般与栈顶元素相比,同则出,不同则不对称。
// 0应特殊处理
// 进制转换,对称性
#include <stdio.h>
#define SIZE 8000000
int a[SIZE];
int main()
{
#ifdef ONLINE_JUDGE
#else
freopen("E:\\in.txt", "r", stdin);
// freopen("E:\\out.txt", "w", stdout);
#endif
int n, b;
scanf("%d%d", &n, &b);
if(0 == n)
{
printf("Yes\n");
printf("0\n");
return 0;
}
int len=0;
while( n != 0)
{
a[len++] = n % b;
n /= b;
}
int i, j;
i = 0; j=len-1;
bool flag = true;
while(i<j)
{
if(a[i] != a[j])
{
flag = false;
break;
}
i++;
j--;
}
if(true == flag)
{
printf("Yes\n");
for(i=0; i<len; i++)
{
printf("%d", a[i]);
if(i != len-1)
{
printf(" ");
}
else
{
printf("\n");
}
}
}
else
{
printf("No\n");
for(i=len-1; i>=0; i--)
{
printf("%d", a[i]);
if(i != 0)
{
printf(" ");
}
else
{
printf("\n");
}
}
}
return 0;
}