usaco Palindromic Squares
2015-08-26 21:28
477 查看
我会告诉你进制转换我都忘了,翻出了数字逻辑课本才想起来的。
/* ID: modengd1 PROG: palsquare LANG: C++ */ #include <iostream> #include <stdio.h> #include <string.h> #include <stack> using namespace std; char leter[20]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J'}; //进制转换,将x转化为base进制的数的字符串表示形式存入out数组 void changetheBase(int x,int base,char out[60]) { stack<char> S; int i=0; while(x>0) { S.push(leter[x%base]); x/=base; } for(i=0;!S.empty();i++) { out[i]=S.top(); S.pop(); } out[i]=0; } //检测一个以'\0'结尾的字符串是不是回文串 bool isPalindromic(char input[60]) { int temp[60]; int len=strlen(input); for(int i=0;i<len;i++) { temp[len-i-1]=input[i]; } for(int i=0;i<len;i++) { if(input[i]!=temp[i]) return false; } return true; } int main() { freopen("palsquare.in","r",stdin); freopen("palsquare.out","w",stdout); int square[301],base; scanf("%d",&base); for(int i=1;i<=300;i++) { char out1[60],out2[60]; changetheBase(i,base,out1); changetheBase(i*i,base,out2); if(isPalindromic(out2)) { cout<<out1<<' '<<out2<<endl; } } return 0; }
相关文章推荐
- java日期操作
- Android学习【2】Activity之间通过Application进行数据传递
- JAVA问题总结之14-程序运行时间的测量
- WINCE读取系统数据或系统配置信息
- V4L2 msater与subdev驱动
- CodeForces 339D Xenia and Bit Operations 线段树
- 剑指offer 算法 (知识迁移能力2)
- nginx之Web服务器集群-helloworld
- hdoj 1686 Oulipo【kmp】
- 2016阿里在线笔试Java研发附加题
- hdu 1875 畅通工程再续(Kruskal算法)
- H5危险的文件上传对话框
- Java之iterator迭代器和iterable接口
- 1、redis 安装
- Ubuntu学习之文件的压缩与打包
- 1030. Travel Plan (30)
- SAX解析XML文件步骤及问题
- POJ 1651 Multiplication Puzzle (区间DP)
- IOS零碎知识点
- poj 1321 棋盘问题 dfs