zoukankan      html  css  js  c++  java
  • USACO Training Section 1.2 [USACO1.2]回文平方数

    题目描述
    回文数是指从左向右念和从右向左念都一样的数。如12321就是一个典型的回文数。

    给定一个进制B(2<=B<=20,由十进制表示),输出所有的大于等于1小于等于300(十进制下)且它的平方用B进制表示时是回文数的数。用’A’,’B’……表示10,11等等

    输入输出格式
    输入格式:

    共一行,一个单独的整数B(B用十进制表示)。

    输出格式:
    每行两个B进制的符合要求的数字,第二个数是第一个数的平方,且第二个数是回文数。

    输入输出样例
    输入样例#1:

    10
    输出样例#1:
    1 1
    2 4
    3 9
    11 121
    22 484
    26 676
    101 10201
    111 12321
    121 14641
    202 40804
    212 44944
    264 69696
    说明
    题目翻译来自NOCOW。

    这道题,主要还是考察进制转换,如果用char 数组对于时间还可以进行优化,但是这个题时间足够,这样写可以偷懒。其次是完全枚举。

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    string solve(int a,int b);
    bool flag;
    int main()
    {
            int n;
            cin>>n;
            for(int i=1;i<=300;i++)
            {
                    string  a=solve(i,n);
                   string b=solve(i*i,n);
                    if(flag) cout<<a<<' '<<b<<endl;
            }
            return 0;
    }
    string solve(int a,int b)
    {
        string d;
            d.clear();
        int i=0;
        char c;
        while(a%b!=a)
        {
            i=a%b;
            if(i>=10) c=char(i+55);
            else c=i+'0';
            a=a/b;
           d.push_back(c);
        }
        if(a>=10) c=char(a+55);
        else c=a+'0';
        d.push_back(c);
        string e=d;
        reverse(d.begin(),d.end());
        if(e==d) flag=1;
        else flag=0;
        return d;
    }
    
    
  • 相关阅读:
    HDU 6076
    HDU 6069
    ZOJ
    HDU
    斜率优化dp
    UVA 11752 The Super Powers
    poj 3761 bubble sort (排列组合)
    UVA 11174 Stand in a Line
    Caffe初学者第二部:Ubuntu16.04上安装caffe(CPU)+Matlab2014a+Opencv3的详细过程 (亲测成功, 20180529更新)
    Caffe初学者第一部:Ubuntu14.04上安装caffe(CPU)+Python的详细过程 (亲测成功, 20180524更新)
  • 原文地址:https://www.cnblogs.com/lunatic-talent/p/12798920.html
Copyright © 2011-2022 走看看