• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
锦燕云
博客园    首页    新随笔    联系   管理    订阅  订阅

USACO Section 1.2 : Palindromic Squares

palsquare.c
# include <stdio.h>
char num[21]="0123456789ABCDEFGHIJ";
int N;
char n[21];
jinzhi(
int i)
{
   memset(n,
'\0',sizeof(n));
   
int j=0;
   
char t;
   
int x=0,y;
   
while(i>=N)
   {
      n[j]
=num[i%N];
      i
/=N;
      j
++;
      }

   
if (i==0)
      n[j]
='\0';
   
else
      n[j]
=num[i],n[j+1]='\0';
   y
=strlen(n)-1;
   
while (x<=y)
   {
      t
=n[x];
      n[x]
=n[y];
      n[y]
=t;
      x
++;
      y
--;
      }
}

int palindromic()
{
   
int i=0,j;
   j
=strlen(n)-1;
   
while (i<=j)
   {
      
if (n[i]!=n[j]) return (0);
      i
++;
      j
--;
      }
   
return (1);
}
   

main ()
{
   FILE 
*in=fopen ("palsquare.in","r");
   FILE 
*out=fopen("palsquare.out","w");
   
   
int i;
   fscanf (
in,"%d",&N);
   
for (i=1;i<=300;i++)
   {
      jinzhi(i
*i);
      
if (palindromic()!=0)
      {
         jinzhi(i);
         fprintf (
out,"%s ",n);
         jinzhi(i
*i);
         fprintf (
out,"%s\n",n);
         }
      }
   fclose(
in);
   fclose(
out);
   exit(
0);
}
posted @ 2009-08-01 18:31  锦燕云  阅读(139)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3