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 }
  • 相关阅读:
    CocosCreator-Widget,前后台切换
    Unity获取未激活游戏对象的方法 、坐标转换
    Mathf函数
    C# activeSelf、activeInHierarchy、SetActive、SetActiveRecursively
    C# 碰撞,射线,点击,周期函数等基本代码
    TCP/IP 协议栈
    笔记—《程序员自我修养》
    Container With Most Water 双指针法
    多线程服务器 编程模型
    c++ 高效并发编程
  • 原文地址:https://www.cnblogs.com/icedream61/p/4321423.html
Copyright © 2011-2022 走看看