USACO-Section1.3 Palindromic Squares (进制转换和回文数)
2017-05-27 10:09
411 查看
2017-5-27
题目描述
解答
代码
说一下需要注意的地方:
(1)注意对十进制以上字符的判断,A代表10,B代表11,以此类推。
(2)注意输出的是B进制的两个数,原数和它的平方。
题目描述
十进制数1到300的平方用N进制表示,若为回文数,则输出
解答
大体就是进制转换以及判断回文数的结合
代码
/* ID: 18795871 PROG: palsquare LANG: C++ */ #include<iostream> #include<fstream> #include<cstring> using namespace std; ifstream fin("palsquare.in"); ofstream fout("palsquare.out"); const int N = 17; char x[21]="0123456789ABCDEFGHIJ"; int n; char c[N+1]; void cal(int a){//将十进制a用n进制表示 char d[N+1]; int i=0; while (a){ d[i++]=x[a%n]; a/=n; } for (int j=0;j<i;j++) c[j]=d[i-j-1]; c[i]='\0'; } bool res(char *a){ char b[N+1]; int l=strlen(a); for (int i=0;i<l;i++) b[l-i-1]=a[i]; b[l]='\0';a[l]='\0'; if (strcmp(a,b)==0) return true; return false; } int main() { fin>>n; for (int i=1;i<=300;i++){ cal(i*i); if (res(c)){ cal(i); fout<<c<<" "; cal(i*i); fout<<c<<endl; } } return 0; }
说一下需要注意的地方:
(1)注意对十进制以上字符的判断,A代表10,B代表11,以此类推。
(2)注意输出的是B进制的两个数,原数和它的平方。
/* ID: 18795871 PROG: palsquare LANG: C++ */ #include<iostream> #include<fstream> using namespace std; ifstream fin("palsquare.in"); ofstream fout("palsquare.out"); int n; bool isPal(char p[100],int l){ if (l==1) return true; for (int i=0;i<l/2;i++){ if (p[i]!=p[l-i-1]) return false; } return true; } bool cal(int p){ char c1[100],c2[100]; int k1=p,k2=p*p,cnt1=0,cnt2=0; while (k1){ if (k1%n<10) c1[cnt1]=k1%n+'0'; else c1[cnt1]=(k1%n-10)+'A'; k1=k1/n; cnt1++; } while (k2){ if (k2%n<10) c2[cnt2]=k2%n+'0'; else c2[cnt2]=(k2%n-10)+'A'; k2=k2/n; cnt2++; } if (!isPal(c2,cnt2)) return false; for (int i=cnt1-1;i>=0;i--) fout<<c1[i]; fout<<" "; for (int i=cnt2-1;i>=0;i--) fout<<c2[i]; fout<<endl; return true; } int main(){ while (fin>>n){ for (int i=1;i<=300;i++){ if (!cal(i)) continue; } } return 0; }
相关文章推荐
- USACO-Section1.3 Dual Palindromes (进制转换和回文数)
- USACO Section1.3 Barn Repair
- USACO-Section1.3 Combination Lock
- USACO Section 1.3 Combination Lock
- USACO Section 1.3 题解
- USACO-Section 1.3 Combination Lock(枚举)
- USACO Section 1.3 Calf Flac - 简单的字符串处理
- USACO - Chapter1 Section 1.3 - Mixing Milk
- USACO-Section1.3 Wormholes
- USACO section1.3 Barn Repair
- USACO Section 1.3 : Prime Cryptarithm
- USACO Section1.3 Barn Repair 解题报告
- 【USACO】【贪心】Section1.3 Mixing Milk 题解
- USACO Section1.3 Prime Cryptarithm
- USACO-Section1.3 Ski Course Design
- USACO-section 1.3 Mixing Milk[贪心]
- USACO-Section1.3 milk[贪心]
- USACO Section1.3 Prime Cryptarithm 解题报告
- USACO Section 1.3 Calf Flac
- USACO Section 1.3 Prime Cryptarithm (枚举)