大数相加问题

来源:互联网 发布:mac上炒股软件 编辑:程序博客网 时间:2024/05/22 10:27
</pre><pre name="code" class="cpp">#include "stdafx.h"#include <string>#include <iostream>using namespace std;int main() {string s1, s2, ss1 , ss2;cin >> s1 >> s2;    int  n = s1.size();            //逆置字符串int  m = s2.size();for (int  i = 0; i < n; i++){ss1 = s1[i] + ss1;}for (int i = 0; i < m; i++){ss2 = s2[i] + ss2;}                            if (n > m)                    //补齐位数{for (int i = 0; i < n-m; i++){ss2 = ss2 + "0";}}else {for (int i = 0; i < m-n; i++){ss1 = ss1 + "0";}}int add, mid = 0;           //模拟计算string sum, min;int r = n > m ? n : m;for (int i = 0; i < r; i++){add = mid + ss1[i] - '0' + ss2[i] - '0';if (add >= 10){mid = 1;add = add - 10;min = add + '0';sum = min + sum;}else {min = add + '0';sum = min + sum;mid = 0;}}if (mid == 1)          //判断最后一位为10以上的情况{sum = "1" + sum;}cout << sum << endl;}

0 0
原创粉丝点击