题目
思路
注意不要输出高位的零。
代码
#include<iostream>
#include<vector>
#include<string>
using namespace std;
vector<int>add(vector<int>A, vector<int>B,vector<int>t)
{
int jin = 0;
vector<int>c;
for (int i = 0;i < A.size() || i<B.size();i++)
{
if(i<A.size())
jin = jin + A[i];
if (i < B.size())
jin = jin + B[i];
if (t[i] == 0)
{
t[i] = 10;
}
c.push_back(jin % t[i]);
jin = jin / t[i];
}
if (jin == 1)
c.push_back(1);
while (c.size() > 1 && c.back() == 0)
c.pop_back();
return c;
}
int main()
{
string table;
cin >> table;
string a, b;
cin >> a >> b;
vector<int>A, B,t;
for (int i = a.size() - 1;i >= 0;i--)
{
A.push_back(a[i] - '0');
}
for (int i = b.size() - 1;i >= 0;i--)
{
B.push_back(b[i] - '0');
}
for (int i = table.size() - 1;i >= 0;i--)
{
t.push_back(table[i] - '0');
}
vector<int>c = add(A,B,t);
for (int i = c.size() - 1;i >= 0;i--)
{
cout << c[i];
}
return 0;
}