题目描述
时间限制:1000ms
单点时限:1000ms
内存限制:256MB
描述
求两个整数A+B的和
输入
输入包含多组数据。
每组数据包含两个整数A(1 ≤ A ≤ 100)和B(1 ≤ B ≤ 100)。
输出
对于每组数据输出A+B的和。
样例输入
1 2
3 4
样例输出
3
7
思路:其实本题目就是简单的A+B问题,但是如何怎么实现大整数相加呢,这就需要字符串来处理了,其实也就是模拟手工计算的过程:从最后一位开始算起,用一个标志位记录进位,得到的结果存入一个字符数组之中。
代码如下:
#include<iostream>
using namespace std;
int number[10000];
int main(){
string num1,num2;
int c,len1,len2,sum,i;
while(cin>>num1>>num2){
len1 = num1.length();
len2 = num2.length();
int minlen = len1<len2?len1:len2;
i=0;
c = 0;
while(minlen--){
sum = num1[--len1]-'0' +num2[--len2]-'0'+c;
number[i++] = sum%10;
c= sum/10;
}
if(len1==0){
while(len2--){
sum = num2[len2]-'0'+c;
number[i++] = sum%10;
c= sum/10;
}
}else{
while(len1--){
sum = num1[len1]-'0'+c;
number[i++] = sum%10;
c= sum/10;
}
}
for(int j=i-1;j>=0;j--){
cout<<number[j];
}
cout<<endl;
}
return 0;
}