练习2.1-4 (字符串实现任意长度的数之和)

来源:互联网 发布:section软件 编辑:程序博客网 时间:2024/05/19 20:57
#include<iostream>#include<vector>#include<string>#include<set>#include<map>#include<unordered_set>#include<unordered_map>#include<algorithm>#include<xfunctional>using namespace std;string add(string a,string b){int in = 0;//stands for carry bitint lengtha = a.size();int lengthb = b.size();int i = lengtha-1, j = lengthb-1;string res = "";while (i>=0&&j>=0){int cur = (a[i] - '0')+(b[j]-'0')+in;in = cur / 2;//we do the binary operationcur = cur % 2;char temp = cur + '0';res.push_back(temp);i--;j--;}while (i>=0){int cur = (a[i] - '0') + in;in = cur / 2;cur = cur % 2;char temp = cur + '0';res.push_back(temp);i--;}while (j>=0){int cur = (b[j]-'0') + in;in = cur / 2;cur = cur % 2;char temp = cur + '0';res.push_back(temp);j--;}if (in){char t = in + '0';res.push_back(t);}reverse(res.begin(),res.end());return res;}int main(){string A, B;cin >> A >> B;string res = add(A,B);cout << res << endl;system("pause");return 0;}

0 0
原创粉丝点击