首页 > 代码库 > 大数加法(STL list)
大数加法(STL list)
#include<iostream>#include<list>#include<string>using namespace std;int main(){ list<int>l1, l2, l3; string s1, s2; cin >> s1; cin >> s2; //储存大数 for (int i = 0; i<s1.length(); i++) l1.push_front(s1[i] - ‘0‘); for (int i = 0; i<s2.length(); i++) l2.push_front(s2[i] - ‘0‘); list<int>::iterator it1, it2; it1 = l1.begin(); it2 = l2.begin(); //进位保存 int carry = 0; //计算位数相同部分 while (it1 != l1.end() && it2 != l2.end()) { l3.push_front((*it1 + *it2 + carry) % 10); carry = (*it1 + *it2 + carry) / 10; it1++; it2++; } list<int>::iterator it3 = (it1 == l1.end()) ? it2 : it1; list<int>::iterator it4 = (it1 == l1.end()) ? l2.end() : l1.end(); //计算位数不相同部分 while (it3 != it4) { l3.push_front((*it3 + carry) % 10); carry = (*it3 + carry) / 10; it3++; } l3.push_front(carry); //输出 for (list<int>::iterator it = l3.begin(); it != l3.end(); it++) cout << *it; cout << endl; return 0;}
大数加法(STL list)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。