hihoCoder #1000:A+B (大整數)題解
阿新 • • 發佈:2019-02-06
題目描述
時間限制: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;
}