模拟题。
但是还算是稍微有点坑。
1,注意输出的是B进制数。
2,注意输出的时候进制超过10的输出字母。
越是简单的题目越容易犯错。
/* ID: rowanha3 LANG: C++ TASK: palsquare */ #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace std; int num[100000]; int nums[100000]; char nn[21]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K'}; void dos(int a,int b) { int c; c=a; int len=0; a=a*a; while(a) { num[len++]=a%b; a=a/b; } int i; for(i=0;i<=(len-1)/2;i++) { if(num[i]!=num[len-1-i])return ; } int lens=0; while(c) { nums[lens++]=c%b; c=c/b; } for(i=lens-1;i>=0;i--) { cout<<nn[nums[i]]; } cout<<" "; for(i=len-1;i>=0;i--) { cout<<nn[num[i]]; } cout<<endl; } int main() { freopen("palsquare.in","r",stdin); freopen("palsquare.out","w",stdout); int n; cin>>n; int i; for(i=1;i<=300;i++) { dos(i,n); } fclose(stdin); fclose(stdout); return 0; }
作者:rowanhaoa 发表于2013-3-15 19:32:42 原文链接
阅读:20 评论:0 查看评论