1548_猪数 第一个AC的程序~~

个人以为这个程序太有纪念意义了,所以发上来分享一下下.

http://acm.fzu.edu.cn/problem.php?pid=1548是题目的地址.

虽然代码效率不是很高,但是依旧AC了~~感动啊,因为第二天就要比赛了...

个人是极度热爱编程,所以学编程三个月就报名参加acm~~

最后拿了200分,,,位列160名...

比赛有600人参加,而且多为大二大三的学长...

实力差距依旧悬殊~~而我竟然还有这个名次~~

有些惊讶,,,惊喜之时,,依旧几分失落~~

年轻人嘛~~雄心壮志~~

明年的今天,我一定拿个一等来!

                                                                                           

                                               ---------------suneast        

even I am not the best.But I can be my best! Just believe it I can !         

以下是题目:

猪数
Time Limit:1sMemory limit:32M
Accepted Submit:161Total Submit:286

在猪的世界里有一种数叫猪数,猪是这么定义猪数的:给定一个进制B(2<=B<=20,B用十进制表示),在这个进制下,这个数的平方从左向右念和从右像左念都一样,用‘A’,‘B’……表示10,11等等。

例如:B=10时,121就是一个猪数,因为121的平方14641满足条件。

你的任务是编写一个程序,求出所有大于等于1小于等于300的猪数。

Input

输入包含多组测试数据,请处理到EOF结束。
每组测试数据,由一行组成,为一个单独的整数B(B用十进制表示)。

Output

对每组数据输出:每行两个数字,第二个数是第一个数的平方,且第一个数是猪数。(注意:这两个数都应该在B那个进制下)

Sample Input

10

Sample Output

1 1
2 4
3 9
11 121
22 484
26 676
101 10201
111 12321
121 14641
202 40804
212 44944
264 69696

Sample Input

15

Sample Output

1 1
2 4
3 9
4 11
8 44
C 99
11 121
14 191
22 484
29 6B6
44 1331
51 1AA1
88 4CC4
99 6226
101 10201
111 12321
121 14641
131 16B61

Original: ACM模拟赛之再见猪年

下面是我的AC代码,,不足之处希望大家多多指教.

THANK YOU!

#include<stdio.h>
#define N 300

int main()
{int a[N+1]={0},d[20]={0},c[10]={0};
int i,j,B,m,t,t1,t2;
for(i=1;i<=N;i++)
a[i]=i*i;

while(scanf("%d",&B)!=EOF)
{                    
for(i=1;i<=N;i++)
 {t=a[i];j=1;
 while(t!=0)
  {d[j]=t%B;
  t/=B;j++;
  }

 m=1;t1=--j;
 while(m<j)
  if(d[m++]!=d[j--])
   goto end;
 j=1;
 t=i;
 while(t)
  {c[j]=t%B;
  t/=B;j++;
  }
 t2=--j;
 for(j=t2;j>0;j--)
  {t=c[j]/10;
  if(t)
  printf("%c",c[j]%10+'A');
  else
  printf("%d",c[j]);
  }
 printf(" ");
 for(j=t1;j>0;j--)
  {t=d[j]/10;
  if(t)
  printf("%c",d[j]%10+'A');
  else
  printf("%d",d[j]);
  }
 putchar('/n');
 end : ;
 }
}
return 0;
}

                                                                                             

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值