USACO-Section1.3 Palindromic Squares (进制转换和回文数)
生活随笔
收集整理的這篇文章主要介紹了
USACO-Section1.3 Palindromic Squares (进制转换和回文数)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2017-5-27
題目描述
十進制數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進制的兩個數,原數和它的平方。
總結
以上是生活随笔為你收集整理的USACO-Section1.3 Palindromic Squares (进制转换和回文数)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 洛谷 P1417 烹调方案
- 下一篇: while else语句