CODEVS 1390 回文平方数 青铜题 实在很伤
来源:互联网 发布:不知为不知的知的意思 编辑:程序博客网 时间:2024/04/29 19:49
题目描述 Description
回文数是指从左向右念和从右像做念都一样的数。如12321就是一个典型的回文数。
给定一个进制B(2<=B<=20十进制),输出所有的大于等于1小于等于300且它的平方用B进制表示时是回文数的数。用’A’,’B’……表示10,11等等。
输入描述 Input Description
共一行,一个单独的整数B(B用十进制表示)。
输出描述 Output Description
每行两个数字,第二个数是第一个数的平方,且第二个数是回文数。
样例输入 Sample Input
10
样例输出 Sample Output
1 1
回文数是指从左向右念和从右像做念都一样的数。如12321就是一个典型的回文数。
给定一个进制B(2<=B<=20十进制),输出所有的大于等于1小于等于300且它的平方用B进制表示时是回文数的数。用’A’,’B’……表示10,11等等。
输入描述 Input Description
共一行,一个单独的整数B(B用十进制表示)。
输出描述 Output Description
每行两个数字,第二个数是第一个数的平方,且第二个数是回文数。
样例输入 Sample Input
10
样例输出 Sample Output
1 1
2 4
3 9
11 12122 484
26 676
101 10201111 12321
121 14641202 40804
212 44944
264 69696
由于 这题是个水题,直接按暴力算就行,最简单最直接最正确,
先确定进制,再从1——300扫就OK
然而这个题在CODEVS的输出好像有问题
下面是我的暴力,和正解的输出一模一样
就是只得了12分 这让我很是焦灼
下面附上我和网上的
#include<iostream>#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>using namespace std;int bb;char a[1010],b[1010];int l,l1;int pan(int x,int y,int z){l=0;memset(a,0,sizeof(a));while(x>=y){int temp=x%y;if(temp>=10){a[l]='A'+temp-10;}else{a[l]=temp+'0';}x/=y;l++;}if(x>=10){a[l]='A'+x-10;}else{a[l]=x+'0';}for(int i=0;i<=l;i++){if(a[i]!=a[l-i]){return 0;}}x=z;l1=0;memset(b,0,sizeof(b));while(x>=y){int temp=x%y;if(temp>=10){b[l1]='A'+temp-10;}else{b[l1]=temp+'0';}x/=y;l1++;}if(x>=10){b[l1]='A'+x-10;}else{b[l1]=x+'0';}for(int i=0;i<=l1;i++){cout<<b[i];}cout<<" ";for(int i=0;i<=l;i++){cout<<a[i];}cout<<"\n";}int main(){cin>>bb;for(int i=1;i<=300;i++){pan(i*i,bb,i);}}
#include<cstdio>#include<iostream>#include<cstring>#include<cmath>using namespace std;int b,a[20];int change(int n){ int i=0,j; while(n>0) { a[++i]=n%b; n/=b; } return i; }int hw(int k){ int i=1,j; j=k; while(i<j) if(a[i++]!=a[j--]) return 0; return 1;}void print(int x){ int k[20],i=0,j; while(x>0) { k[++i]=x%b; x/=b; } for(j=i;j>=1;j--) { if(k[j]>=10) printf("%c",k[j]-10+'A'); else printf("%d",k[j]); } cout<<" "; }void solve(){ int i,j,n; for(i=1;i<=300;i++) { n=change(i*i); if(hw(n)) { print(i); for(j=n;j>=1;j--) { if(a[j]>=10) printf("%c",a[j]-10+'A'); else printf("%d",a[j]); } cout<<endl; } } }int main(){ int i,j; cin>>b; solve(); return 0;}
阅读全文
0 0
- CODEVS 1390 回文平方数 青铜题 实在很伤
- 第二层第四题:回文平方数
- 回文平方数
- 回文平方数
- usaco回文平方数
- [P1206]回文平方数
- P1206 回文平方数
- 回文平方数
- 回文平方数
- 计蒜客 回文平方数
- 回文平方数
- Palindromic Squares 回文平方数
- Palindromic Squares 回文平方数
- #USACO TRAINING#回文平方数
- 【USACO TRAINING】回文平方数
- USACO 1.2 回文平方数
- USACO1.2.4 回文平方数
- CODEVS 1023 青铜
- leetCode-Set Matrix Zeroes
- LeetCode Text Justification
- Python ftp 上传和下载
- java高级工程师的技术进阶
- java 静态方法和实例方法的区别
- CODEVS 1390 回文平方数 青铜题 实在很伤
- CSS布局之脱离文档流详解——浮动、绝对定位脱离文档流的区别
- 171213 逆向-.Net基础概念
- 关于Java共享变量的思考
- spring+mybatis+c3p0数据库连接池或druid连接池使用配置整理
- android 精彩博文归类总结
- 控制位数和填充0
- mybatis在oracle数据库中获取主键
- sed---用法简介