【USACO】回文平方数(暴力)
2018-03-23 20:18
323 查看
题目描述
回文数是指从左向右念和从右像做念都一样的数。如12321就是一个典型的回文数。 给定一个进制B(2<=B<=20十进制),输出所有的大于等于1小于等于300(十进制下)且它的平方用B进制表示时是回文数的数。用'A','B'……表示10,11等等。输入
共一行,一个单独的整数B(B用十进制表示)。输出
每行两个数字,第二个数是第一个数的平方,且第二个数是回文数。(注意:这两个数都应该在B进制下)样例输入
10
样例输出
1 1
2 4
3 9
11 121
22 484
26 676
101 10201
111 12321
121 14641
202 40804
212 44944
264 69696
提示
思路:暴力就好了代码:#include<stdio.h>
char c[20]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J'};
int n;
int fun(int num)
{
num*=num;
char a[1000];
int i=1;
while(num)
{
a[i]=c[num%n];
num/=n;
i++;
}
i--;
int flag=1;
for(int j=1;j<=i/2;j++)
{
if(a[j]!=a[i-j+1])
{
flag=0;
break;
}
}
return flag;
}
void print(int num)
{
int temp=num;
char a[1000];
int i=1;
while(num)
{
a[i]=c[num%n];
num/=n;
i++;
}
i--;
for(i;i>=1;i--)
printf("%c",a[i]);
printf(" ");
num=temp*temp;
i=1;
while(num)
{
a[i]=c[num%n];
num/=n;
i++;
}
i--;
for(i;i>=1;i--)
printf("%c",a[i]);
printf("\n");
}
int main()
{
while(~scanf("%d",&n))
{
for(int i=1;i<=300;i++)
{
if(fun(i)==1)
print(i);
}
}
return 0;
}
相关文章推荐
- bzoj 1602: [Usaco2008 Oct]牧场行走(暴力LCA)
- USACO 1.4.1 Packing Rectangles —— 暴力+ 模拟
- USACO 1.3 Ski Course Design - 暴力
- USACO Section 3.4 Closed Fences - 暴力枚举..
- usaco回文平方数
- USACO 1.5.2 —— 打表暴力
- Street Race_usaco 4.3_spfa+暴力+dfs
- bzoj1770 USACO NOV09 GOLD 灯(暴力出奇迹)
- [USACO1.3]虫洞wormhole 暴力 (第一章完结)
- USACO 1.3 - Prime Cryptarithm(暴力枚举)
- [USACO 1.2.4]回文平方数
- 【USACO2.3.1】最长前缀 KMP(爆内存) 暴力(居然更快还AC)
- USACO 1.4 Arithmetic Progressions (暴力搜索)
- BZOJ_1622_[Usaco2008_Open]_Word_Power_名字的能量_(字符匹配_暴力)
- USACO-Section1.3 Ski Course Design【暴力枚举】
- [bzoj1610][Usaco2008 Feb]Line连线游戏_暴力枚举
- 【USACO】Wormholes(暴力搜索)
- Factorials_usaco3.2_数论?暴力!
- bzoj 1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛 暴力
- Muscial Theme_usaco 5.1_dp||暴力