1 条题解
-
0
C++ :
#include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> using namespace std; int b; int a[1000]; char g[12]={'A','B','C','D','E','F','G','H','I','J','K','L'};//标出这些字母 bool judge(int x) { int stop=1,tail=1; while(x!=0)//进制转换 { a[tail]=x%b; x=x/b; tail++; } tail--; for(int i=1;i<=(tail+1)/2;i++) if(a[i]!=a[tail+1-i]) { stop=0;//判断是否为回文 break; } if(stop==1) return 1; else return 0; } void print(int x) { int tail=1; while(x!=0)//照例进制转换 { a[tail]=x%b; x=x/b; tail++; } tail--; for(int i=tail;i>=1;i--)//倒叙输出 { if(a[i]<=9) printf("%d",a[i]); else printf("%c",g[a[i]-10]); } } int main() { scanf("%d",&b); for(int i=1;i<=300;i++) { if(judge(i*i)==1) { print(i);//打印这个数 printf(" "); print(i*i);//打印这个数的平方 printf("\n"); } }/**/ return 0; }
Java :
import java.math.BigInteger; import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner laji=new Scanner(System.in); int n=laji.nextInt(); for(int i=1;i<=300;i++) { BigInteger a=new BigInteger(i+""); StringBuffer x=new StringBuffer(a.pow(2).toString(n)); StringBuffer y=new StringBuffer(a.pow(2).toString(n)); if(x.reverse().toString().equals(y.toString())) { System.out.println(a.toString(n).toUpperCase()+" "+a.pow(2).toString(n).toUpperCase()); } } } }
- 1
信息
- ID
- 1994
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者