个人以为这个程序太有纪念意义了,所以发上来分享一下下.
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:1s Memory limit:32M Accepted Submit:161 Total 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
10Sample Output
1 1 2 4 3 9 11 121 22 484 26 676 101 10201 111 12321 121 14641 202 40804 212 44944 264 69696Sample Input
15Sample 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 16B61Original: ACM模拟赛之再见猪年
下面是我的AC代码,,不足之处希望大家多多指教.
THANK YOU!
#include<stdio.h>
#define N 300int 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;
}
1548_猪数 第一个AC的程序~~
最新推荐文章于 2024-04-29 23:47:34 发布