zcmu-1181(大数相加)
生活随笔
收集整理的這篇文章主要介紹了
zcmu-1181(大数相加)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1181: a+b(不同于第一題)
Time Limit: 10 Sec??Memory Limit: 128 MBSubmit: 920??Solved: 303
[Submit][Status][Web Board]
Description
求a+b的值
Input
第一行一個(gè)整數(shù)T,表示接下來(lái)有T行
每行兩個(gè)整數(shù)是a,b,(0<=a,b<=10^10000)
Output
輸出值
Sample Input
2100 10010000000000 10000000000Sample Output
20020000000000HINT
Source
解析:大數(shù)的運(yùn)算通常要運(yùn)用字符串,很平常的運(yùn)算規(guī)則一樣,都是從最后的位開(kāi)始加減。
代碼:
#include<iostream> #include<string> using namespace std;// 實(shí)現(xiàn)大數(shù)相加 結(jié)果存放在num中void bigIntergerAdd(string &num, string add) {int goBit = 0; // 存放進(jìn)位// 先交換下順序 加數(shù)的位數(shù)要比較少if (num.length() < add.length()) {string tmp = num;num = add;add = tmp;}string tmp (num.length() - add.length(), '0');add = tmp + add;// 利用string的+號(hào)特性 不采用逆序相加法int len1 = num.length(), len2 = add.length();for (int i = len1 -1 ; i>= 0; --i) {int tmp = ((num[i] - '0') + (add[i] - '0') + goBit) ;num[i] = tmp% 10 + '0';goBit = tmp/10;}// 特殊情況處理if (goBit != 0)num.insert(0, string(1, (char)goBit +'0'));cout<<num<<endl; } int main() {int t;string s1;string result;cin>>t;for(int i=1; i<=t; i++){cin>>s1>>result;bigIntergerAdd(result, s1);}return 0; }總結(jié)
以上是生活随笔為你收集整理的zcmu-1181(大数相加)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: zcmu-1986
- 下一篇: zcmu-1182(大数相减)