Problem Description
读入两个不超过25位的火星正整数A和B,计算A+B。需要注意的是:在火星上,整数不是单一进制的,第n位的进制就是第n个素数。例如:地球上的10进制数2,在火星上记为“1,0”,因为火星个位数是2进制的;地球上的10进制数38,在火星上记为“1,1,1,0”,因为火星个位数是2进制的,十位数是3进制的,百位数是5进制的,千位数是7进制的……
 
Input
测试输入包含若干测试用例,每个测试用例占一行,包含两个火星正整数A和B,火星整数的相邻两位数用逗号分隔,A和B之间有一个空格间隔。当A或B为0时输入结束,相应的结果不要输出。
 
Output
对每个测试用例输出1行,即火星表示法的A+B的值。
 
Sample Input
1,0 2,1
4,2,0 1,2,0
1 10,6,4,2,1
0 0
 
Sample Output
1,0,1
1,1,1,0
1,0,0,0,0,0
 
 
用大数的方法做 一位一位分开求 最后倒叙输出

#include<iostream>
#include<cstdio>
#include<cstring> using namespace std; int hash[];
int sir[];
char ch1[],ch2[];
int num1[],num2[],n1[],n2[],sum[]; int main()
{
int k=;
for(int i=;i<=;i++)
{
if(!hash[i])
{
sir[k++]=i;
for(int j=i+i;j<=;j+=i)
hash[j]=;
}
} while(scanf("%s%s",ch1,ch2)!=EOF)
{ if(strcmp(ch1,"")==&&strcmp(ch2,"")==)
break;
int k1=,k2=;
num1[]=num2[]=;
for(int i=;i<strlen(ch1);i++)
{
if(ch1[i]==',')
{
k1++;
num1[k1]=;
continue;
}
num1[k1]=num1[k1]*+ch1[i]-'';
//cout<<num1[k1];
}
//cout<<endl;
for(int i=;i<strlen(ch2);i++)
{
if(ch2[i]==',')
{
k2++;
num2[k2]=;
continue;
}
num2[k2]=num2[k2]*+ch2[i]-'';
//cout<<num2[k2];
}
//cout<<endl; memset(n1,,sizeof(n1));
memset(n2,,sizeof(n2));
for(int i=k1;i>;i--)
n1[k1-i+]=num1[i];
for(int i=k2;i>;i--)
n2[k2-i+]=num2[i]; //for(int i=1;i<=k1;i++)
//printf("%d,",n1[i]); int K=k1>k2?k1:k2;
for(int i=;i<=K;i++)
{
if(i==)
sum[i]=n1[i]+n2[i];
else
{
if(sum[i-]>=sir[i-])
sum[i]=n1[i]+n2[i]+;
else
sum[i]=n1[i]+n2[i];
}
//cout<<sum[i]<<endl;
}
if(sum[K]>=sir[K])
sum[++K]=;
for(int i=K;i>;i--)
{
if(i==K)
{
printf("%d",sum[i]%sir[i]);
}
else
printf(",%d",sum[i]%sir[i]);
}
printf("\n");
}
return ;
}

hdu1230火星A+B (大数题)的更多相关文章

  1. HDU1230 火星A+B

    火星A+B Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  2. hdu1002 A + B Problem II(大数题)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1002 A + B Problem II Time Limit: 2000/1000 MS (Java/ ...

  3. [火星补锅] 水题大战Vol.2 T2 && luogu P3623 [APIO2008]免费道路 题解

    前言: 如果我自己写的话,或许能想出来正解,但是多半会因为整不出正确性而弃掉. 解析: 这题算是对Kruskal的熟练运用吧. 要求一颗生成树.也就是说,最后的边数是确定的. 首先我们容易想到一个策略 ...

  4. oj 1002题 (大数题)

    #include <stdio.h> #include <string.h> int main(void) { int q,j,h,k,l; int d; ],s2[];//题 ...

  5. [火星补锅] 水题大战Vol.2 T1 && luogu P1904 天际线 题解 (线段树)

    前言: 当时考场上并没有想出来...后来也是看了题解才明白 解析: 大家(除了我)都知道,奇点和偶点会成对出现,而出现的前提就是建筑的高度突然发生变化.(这个性质挺重要的,我之前没看出来) 所以就可以 ...

  6. HDU2054_A == B ?【模拟题】【大数】【水的问题】

    A == B ? Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  7. 大数运算(python2)

    偶然又遇到了一道大数题,据说python大数运算好屌,试了一发,果然方便-1 a = int( raw_input() ); //注意这里是按行读入的,即每行只读一个数 b = int( raw_in ...

  8. 玲珑杯1007-A 八进制大数加法(实现逻辑陷阱与题目套路)

    题目连接:http://www.ifrog.cc/acm/problem/1056 DESCRIPTION Two octal number integers a, b are given, and ...

  9. JAVA大数类练手

    今天突然看到了OJ上的大数类题目,由于学习了一点大数类的知识.果断水了6道题......都是非常基础的.就当的练手的吧. 学到的只是一些大数类的基本操作.以后多做点这样的题,争取熟练运用水大数题... ...

随机推荐

  1. Linux Shell编程(7)——变量赋值

    =赋值操作符(它的左右两边不能有空白符) 不要搞混了=和-eq,-eq是比赋值操作更高级的测试.注意:等于号(=)根据环境的不同它可能是赋值操作符也可能是一个测试操作符.例子:简单的变量赋值 #!/b ...

  2. 图论(二分图,KM算法):HDU 3488 Tour

    Tour Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others)Total Submis ...

  3. Delphi 为TClientdataset定义结果集,并增加记录

    Delphi 为TClientdataset定义结果集,并增加记录 procedure addDefsFieldsForCDS(aDataSet: TClientDataSet);begin  aDa ...

  4. Substrings - HDU 1238(最大共同子串)

    题目大意:给你N个串,求出来他们的最大公共子串的长度(子串反过来也算他们的子串).   分析:很久以前就做过这道题,当时是用的strstr做的,不过相同的都是枚举了子串......还是很暴力,希望下次 ...

  5. Servlet的接口实现类

    Sun公司提供了两个默认实现类 GenericServlet和HttpServlet HttpServlet指能够处理Http请求的Servlet,它在原有的Servlet基础上添加了与HTTp相关的 ...

  6. DCL双检查锁机制实现的线程安全的单例模式

    public class MyObject { private volatile static MyObject myObject; private MyObject(){} public stati ...

  7. @property的特性

    @property还有一些关键字,它们都是有特殊作用的,比如上述代码中的nonatomic,strong: 1 2 @property(nonatomic,strong) NSString *carN ...

  8. MySQL 通配符学习小结

    MySQL 通配符 SQL的模式匹配同意你使用"_"匹配不论什么单个字符,而"%"匹配随意数目字符(包含零个字符).在 MySQL中,SQL的模式缺省是忽略大写 ...

  9. RHCE 基础学习

    http://lizhenliang.blog.51cto.com/7876557/d-8

  10. 笔试之STL

    1. map是如何实现的?它的keys是否经过排序?如何实现它的clear方法? A 实现: map是通过红黑树来实现的,keys是经过排序的: map的所有元素都是pair,同时拥有实值(value ...