1. 程式人生 > >hihoCoder #1000:A+B (大整數)題解

hihoCoder #1000:A+B (大整數)題解

題目描述

時間限制: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; }