</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;
}
大數相加問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.