HDU 1230 火星A+B (xjb搞)
2016-10-12 23:49
447 查看
火星A+B
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 12457 Accepted Submission(s): 4221
[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
[align=left]Source[/align]
浙大计算机研究生复试上机考试-2006年
[align=left]Recommend[/align]
JGShining | We have carefully selected several similar problems for you: 1237 1231 1232 1225 1226
题解:xjb搞...
AC代码:
#include<bits/stdc++.h> #include<algorithm> typedef long long ll; using namespace std; const int maxn=150; int isp[maxn]; int p[maxn]; void prime()//筛选素数 { int i,j; int len=0; isp[0]=isp[1]=1; for(i=2;i<maxn;i++) if(isp[i]==0) { p[len++]=i; for(j=i+i;j<maxn;j+=i) isp[j]=1; } } int main() { int n,m,i,j,k,t; prime(); int a[maxn],b[maxn]; int lena,lenb; int x,y; char op; while(1) { memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); scanf("%d",&x); i=0; a[i++]=x; scanf("%c",&op); while(op==',') { scanf("%d",&x); a[i++]=x; scanf("%c",&op); } lena=i; scanf("%d",&x); i=0; b[i++]=x; scanf("%c",&op); while(op==',') { scanf("%d",&x); b[i++]=x; scanf("%c",&op); } lenb=i; reverse(a,a+lena); reverse(b,b+lenb); if(a[0]==0&&b[0]==0&&lena==1&&lenb==1)break; int maxlen=max(lena,lenb); int sum[maxn]; memset(sum,0,sizeof(sum)); for(i=0,k=0;i<maxlen;i++) //累加 { sum[k++]=a[i]+b[i]; } int lensum=k; for(i=0;i<lensum+10;i++) { int cur=sum[i]%p[i]; //进位 int mod=sum[i]/p[i]; sum[i]=cur; sum[i+1]+=mod; } for(i=maxn-1;i>=0;--i)if(sum[i]!=0)break;//逆序输出 j=i; printf("%d",sum[j]); for(i=j-1;i>=0;--i) printf(",%d",sum[i]); printf("\n"); } return 0; }
相关文章推荐
- hdu 1230 火星A+B
- HDU 1230 火星A+B
- HDU 1230 火星A+B
- hdu1230火星A+B
- hdu 1230 火星A+B
- hdu 1230 火星A+B
- HDU1230 火星A+B【进制】
- hdu1230火星A+B
- HDU 1230 火星A+B
- hdu-1230-火星A+B
- HDU 1230 HDOJ 1230 火星A+B ACM 1230 IN HDU
- HDU-1230(火星A+B)
- [hdu]1230 火星A+B
- hdu 1230 火星A+B
- HDU1230 火星A+B 加法模拟题
- HDU 1230 火星A+B
- HDU1230 火星A+B
- hdu 1230 火星A+B(水题)
- HDU 1230 火星A+B 字符串
- HDU1230 火星A+B