1230 火星 A+B
2015-07-23 15:59
281 查看
欢迎参加——BestCoder周年纪念赛(高质量题目+多重奖励) |
火星A+BTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11497 Accepted Submission(s): 3849 [align=left]Problem Description[/align] 读入两个不超过25位的火星正整数A和B,计算A+B。需要注意的是:在火星上,整数不是单一进制的,第n位的进制就是第n个素数。例如:地球上的10进制数2,在火星上记为“1,0”,因为火星个位数是2进制的;地球上的10进制数38,在火星上记为“1,1,1,0”,因为火星个位数是2进制的,十位数是3进制的,百位数是5进制的,千位数是7进制的…… [align=left]Input[/align] 测试输入包含若干测试用例,每个测试用例占一行,包含两个火星正整数A和B,火星整数的相邻两位数用逗号分隔,A和B之间有一个空格间隔。当A或B为0时输入结束,相应的结果不要输出。 [align=left]Output[/align] 对每个测试用例输出1行,即火星表示法的A+B的值。 [align=left]Sample Input[/align] 1,0 2,1 4,2,0 1,2,0 1 10,6,4,2,1 0 0 [align=left]Sample Output[/align] 1,0,1 1,1,1,0 1,0,0,0,0,0 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #define maxn 50 using namespace std; int na[maxn],nb[maxn],nc[maxn],nd[maxn],c[maxn]; void isprime() { int flag=1,cnt=2; c[1]=2; for(int i=3;i<200;i+=2) { flag=1; for(int j=3;j<=sqrt(i);j++) { if(i%j==0) { flag=0; break; } } if(flag) c[cnt]=i,cnt++; } } int main() { char ch; int cnta,cntb,i; isprime(); while(true) { memset(na,0,sizeof(na)); memset(nb,0,sizeof(nb)); memset(nc,0,sizeof(nc)); memset(nd,0,sizeof(nd)); i=0,cnta=0,cntb=0; while(scanf("%d%c",&na[i++],&ch)) { cnta=i; if(ch==' ') break; } i=0; while(scanf("%d%c",&nb[i++],&ch)) { cntb=i; if(ch=='\n') break; } if(na[0]==0&&nb[0]==0) break; for(int i=0;i<cnta;i++) nc[i]=na[cnta-i-1]; for(int i=0;i<cntb;i++) nd[i]=nb[cntb-i-1]; int max=cnta>cntb?cnta:cntb; for(int i=0;i<max;i++) nc[i]+=nd[i],nc[i+1]+=nc[i]/c[i+1],nc[i]%=c[i+1]; if(nc[max]) max++; for(int i=max-1;i>0;i--) cout<<nc[i]<<','; cout<<nc[0]<<endl; } return 0; } |
相关文章推荐
- 路由和NAT的区别与联系
- indy10 线程池
- seo优化必须知道的sitemap.xml的写法
- C++中的指针和引用
- PAT (Advanced Level) 1029. Median (25) 求两个有序数组的中位数,二分
- URL的井号
- VS2010应用程序的打包与图标设置
- Android 百分比布局支持库介绍
- ART学习笔记Thread SuspendAll部分
- 【启发式搜索】[POJ 1077]Eight
- 同一个tomcat添加多个项目的报webAppRootKey错问题
- NAT详解
- Xcode个版本
- 高低字节序转换(htonl、ntohl、htons、ntohs函数)
- thinkphp 发送邮件
- “<”特殊符号写法
- 关于管理 (转)
- 结构型模式-适配器模式
- HDU 1421 搬寝室
- 关于word排版中公式居中,编号靠右的问题