zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    select 1 from ... sql语句中的1代表什么意思?
    装饰者模式
    Dao层抽取BaseDao公共方法
    DBUtils工具类
    java Page分页显示
    QTP
    Gym 100513F Ilya Muromets(前缀和)
    AcWing1165 单词环(01分数规划)
    AcWing904 虫洞(spfa判负环)
    AcWing1148 秘密的奶牛运输(次小生成树)
  • 原文地址:https://www.cnblogs.com/icedream61/p/4321423.html
Copyright © 2011-2022 走看看