zoukankan      html  css  js  c++  java
  • 洛谷 P1206 [USACO1.2]回文平方数 Palindromic Squares

    题目描述

    回文数是指从左向右念和从右向左念都一样的数。如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。

    USACO Training Section 1.2

    思路:模拟

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    int b;
    int num[100];
    int main(){
        scanf("%d",&b);
        for(int i=1;i<=300;i++){
            int x=i*i,tot=0,flag=0;
            while(x){ num[++tot]=x%b;x/=b; }
            for(int j=1;j<=tot/2;j++)
                if(num[j]!=num[tot-j+1])    flag=1;
            if(!flag){
                x=i;tot=0;
                while(x){ num[++tot]=x%b;x/=b; }
                for(int j=tot;j>=1;j--)
                    if(num[j]<10)    cout<<num[j];
                    else cout<<char(num[j]+55);
                cout<<" ";
                x=i*i;tot=0;
                while(x){ num[++tot]=x%b;x/=b; }
                for(int j=tot;j>=1;j--)
                    if(num[j]<10)    cout<<num[j];
                    else cout<<char(num[j]+55);
                cout<<endl;
            }
        }
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    redis几种模式的部署(Windows下实现)
    servlet容器:jetty,Tomcat,JBoss
    redis三种模式对比
    Linux expect详解
    expect学习笔记及实例详解
    shell expect的简单实用
    【Spring Boot】内嵌容器
    java 怎么让打印信息换行?
    Java中的静态方法是什么?
    java的接口为什么不能实例化
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7862393.html
Copyright © 2011-2022 走看看