• USACO Section1.2 Palindromic Squares 解题报告


        palsquare解题报告 —— icedream61 博客园(转载请注明出处)
    ------------------------------------------------------------------------------------------------------------------------------------------------
    【题目】
      把1~300中,其平方在B进制下是回文数的数进行输出。每个数x输出一行,输出B进制下的x和x²,用空格隔开。
      注意,10~19这些数字,用大写字母'A'、'B'等表示。
    【数据范围】
      1<=B<=20
    【输入样例】
      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
    ------------------------------------------------------------------------------------------------------------------------------------------------
    【分析】
      进制转换会,就没难度。
    ------------------------------------------------------------------------------------------------------------------------------------------------
    【总结】
      进制转换犯了个小错,输出一开始用的cout。

    ------------------------------------------------------------------------------------------------------------------------------------------------

    【代码】

     1 /*
     2 ID: icedrea1
     3 PROB: palsquare
     4 LANG: C++
     5 */
     6 
     7 #include <iostream>
     8 #include <fstream>
     9 using namespace std;
    10 
    11 int B;
    12 char to[20]={   '0','1','2','3','4','5','6','7','8','9',
    13                 'A','B','C','D','E','F','G','H','I','J'  };
    14 
    15 string change(int x)
    16 {
    17     string num;
    18     while(x) { num=to[x%B]+num; x/=B; }
    19     return num;
    20 }
    21 
    22 bool isPal(int x)
    23 {
    24     string num=change(x*x);
    25     for(int i=0;i!=num.size();++i)
    26         if(num[i]!=num[num.size()-1-i]) return false;
    27     return true;
    28 }
    29 
    30 int main()
    31 {
    32     ifstream in("palsquare.in");
    33     ofstream out("palsquare.out");
    34 
    35     in>>B;
    36     for(int i=1;i<=300;++i)
    37     {
    38         if(!isPal(i)) continue;
    39         out<<change(i)<<" "<<change(i*i)<<endl;
    40     }
    41 
    42     in.close();
    43     out.close();
    44     return 0;
    45 }
  • 相关阅读:
    java.nio.channels.ClosedChannelException
    JAVA面试题以及基本hadoop
    one
    在远程桌面集群中——配置Python的环境变量
    双系统——在win10系统保存和查看Ubuntu系统中的文件——Linux Reader
    MySQL——安装
    Python--简单读写csv文件
    Python--画图时希腊字母的显示
    IDL——关系运算符Eq Ne Le Lt Gt Ge
    python——利用scipy.stats import pearsonr计算皮尔逊相关系数
  • 原文地址:https://www.cnblogs.com/icedream61/p/4321423.html
Copyright © 2020-2023  润新知