palsquare-section1.2
来源:互联网 发布:android 仿淘宝搜索 编辑:程序博客网 时间:2024/06/08 05:27
题目大意
给定一个进制B(2<=B<=20,由十进制表示),输出所有的大于等于1小于等于300(十进制下)且它的平方用B进制表示时是回文数的数。用’A’,’B’……表示10,11等等。
输入格式
line 1:B(一个整数,表示进制)
输出格式
每行两个B进制的符合要求的数字,第二个数是第一个数的平方,且第二个数是回文数.
样例输入
10
样例输出
1 12 43 911 12122 48426 676101 10201111 12321121 14641202 40804212 44944264 69696
题解
遍历十进制下1-300的所有数,将其平方用B进制表示,判断是否是回文数,如果是则按要求输出,不是则查看下一个
代码
#include<stdio.h>#include<string.h>int huiwen(char str[20],int len){int i;for(i=0;i<len;i++){ if(str[i]!=str[len-1-i]) return 0;}return 1;}/*char b(int a){char b;if(a<10) b=a+'0';else b='A'+a-10;printf("%c\n",b);return b;}*/int base(long int n,int m,char *str){char str1[20];int i=0,j=0;while(n){ if(n%m<10) str1[i]=n%m+'0'; else str1[i]=n%m-10+'A'; n=n/m; //printf("%c\n",str1[i]); i++;}i--;for(j=0;j<=i;j++){ str[j]=str1[i-j];}return i+1;}int main(){int B,i,j,len,len1;fscanf(fin,"%d",&B);char str[20],str1[10];for(i=1;i<=300;i++){ len=base(i*i,B,str); if(huiwen(str,len)) { len1=base(i,B,str1); for(j=0;j<len1;j++) printf("%c",str1[j]); printf(" "); for(j=0;j<len;j++) printffout,"%c",str[j]); printf("\n"); }}return 0;}
阅读全文
0 0
- palsquare-section1.2
- USACO-Section1.2 palsquare[字符处理]
- palsquare
- usaco1.2 palsquare 2008.11.5
- USACO Section1.2 Transformations
- milk2-section1.2
- namenum-section1.2
- USACO-Section1.2 Transformations
- usaco section1.2 Transformations
- USACO Section1.2 Transformations
- USCAO-Section1.2 Transformations
- USCAO-Section1.2 Transformations
- USACO-Section1.2 Transformations
- transform-section1.2
- dualpal-section1.2
- USACO section1.2 Palindromic Squares
- USCAO section1.2 Palindromic Squares
- USACO section1.2 Dual Palindromes
- GOLANG sync.WaitGroup讲解
- 浅谈BT协议
- [Accessibility] Missing contentDescription attribute on image
- 一起Talk Android吧(第二十五回:Java多线程编程三)
- 自定义Textview显示自动换行
- palsquare-section1.2
- SQL语句中where与having的区别
- Android Gradle 完整指南
- jxl导入导出Excel
- 51nod 1556 计算(默慈金数)
- IIS启动时的问题
- arcgis for js画扇形并给它填充不同的颜色
- system引发的问题
- js操作效果之showTips与createBg