问题 A: a+b

时间限制: 1 Sec  内存限制: 32 MB
提交: 285  解决: 124
[提交][状态][讨论版][命题人:外部导入]

题目描述

实现一个加法器,使其能够输出a+b的值。

输入

输入包括两个数a和b,其中a和b的位数不超过1000位。

输出

可能有多组测试数据,对于每组数据,
输出a+b的值。

样例输入

6 8
2000000000 30000000000000000000

样例输出

14
30000000002000000000
#include<bits/stdc++.h>

using namespace std;
const int N=1e3+;
char a[N],b[N];
struct bign
{
int s[N];
int len;
bign(){
memset(s,,sizeof(s));
len=;
}
}; bign change(char str[])
{
bign a;
a.len=strlen(str);
for(int i=;i<a.len;i++){
a.s[i]=str[a.len-i-]-'';
}
return a;
} int comm(bign a,bign b)//大数的比较
{
if(a.len>b.len) return ;
else if(a.len<b.len) return -;
else{
for(int i=a.len-;i>=;i--){
if(a.s[i]>b.s[i]) return ;
else if(a.s[i]<b.s[i]) return -;
}
}
return ;
} bign add(bign a,bign b)
{
bign c;
int carry=;
for(int i=;i<a.len||i<b.len;i++){
int temp=a.s[i]+b.s[i]+carry;
c.s[c.len++]=temp%;
carry=temp/;
}
if(carry!=) c.s[c.len++]=carry;
return c;
}
int main()
{
while(~scanf("%s %s",a,b)){
bign s1=change(a);
bign s2=change(b);
bign c=add(s1,s2);
for(int i=c.len-;i>=;i--){
printf("%d",c.s[i]);
}
printf("\n");
}
return ;
}

随机推荐

  1. Android学习笔记_46_Android的intent之间Object、List、List<Object>和全局变量数据的传递(Parcelable Serializable)

    转http://blog.csdn.net/pku_android/article/details/7456305 一.传递List<String>和List<Integer> ...

  2. SQLite动态库下载

    其中带有“bundle”字样的表示动态库是按混合模式编译的,在 使用的时候只需要System.Data.SQLite.dll就可以了 而不带“bundle”的则是将非托管部分和托管部分分别编 译,Sy ...

  3. Struts2 第一讲 -- Struts2开发前奏

    我们在学习Struts之前,先来复习一下Servlet,众所周知Servlet是JavaWeb的三大组件.我们发送一个请求,这个请求交给Servlet处理,Servlet将处理的结果返还给浏览器.每个 ...

  4. 自己理解的数据库shcema

    不懂就被人嘲笑呀 ,你还不知道怎么说. 从定义中我们可以看出schema为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点 ...

  5. property--name--id-这三者在值传递的过程中的实现关系

    作者:light链接:https://www.zhihu.com/question/286739416/answer/454300180来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  6. leetcode笔记(三)207. Course Schedule

    题目描述(原题目链接) There are a total of n courses you have to take, labeled from 0 to n-1. Some courses may ...

  7. fjutacm 3700 这是一道数论题 : dijkstra O(mlogn) 二进制分类 O(k) 总复杂度 O(k * m * logn)

    /** problem: http://www.fjutacm.com/Problem.jsp?pid=3700 按二进制将k个待查点分类分别跑dijkstra **/ #include<std ...

  8. 在C++中如何实现文件的读写

    一.ASCII 输出为了使用下面的方法, 你必须包含头文件<fstream.h>(译者注:在标准C++中,已经使用<fstream>取代< fstream.h>,所 ...

  9. oracle调度中使用schedule管理调度

    开始前,先说一句:作为dba应该禁止所有应用使用dbms_job. dbms_scheduler非常复杂,oracle在两本书中专门花费不少章节描述,这两本书分别是: Oracle® Database ...

  10. linux命令之磁盘和文件系统操作

    1.   fdisk:磁盘分区命令 语法:fdisk [选项][参数] 命令说明:fdisk是linux系统里常用的一种磁盘管理工具,可以创建和管理系统分区 常用命令选项: -l:列出指定的并退出,没 ...