欧拉计划第13题
作者:
brivia
,
2024-02-15 21:05:03
,
所有人可见
,
阅读 39
#include<bits/stdc++.h>
using namespace std;
vector<int> add(vector<int> A, vector<int> B)
{
vector<int> ans;
reverse(A.begin(), A.end());
reverse(B.begin(), B.end());
int n = A.size(), m = B.size(), i = 0, j = 0, c = 0;
while (i < n && j < m)
{
c += (int) A[i] + B[j];
ans.push_back(c % 10);
c /= 10;
i ++;
j ++;
}
while (i < n)
{
c += A[i];
ans.push_back(c % 10);
c /= 10;
i ++;
}
while (j < m)
{
c += B[j];
ans.push_back(c % 10);
c /= 10;
j ++;
}
while (c)
{
ans.push_back(c % 10);
c /= 10;
}
reverse(ans.begin(), ans.end());
return ans;
}
vector<int> str2vector(string s)
{
vector<int> A;
for (auto ch: s)
A.push_back(ch - '0');
return A;
}
void print(vector<int>& A)
{
for (int i = 0; i < 10; ++ i) cout << A[i];
cout << endl;
}
int main(void)
{
vector<int> A, B;
for (int i = 0; i < 100; ++ i)
{
string s;
cin >> s;
A = str2vector(s);
B = add(A, B);
}
print(B);
return 0;
}