题目
坑点
输出1位0的时候
实现
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main()
{
string A, num1, num2, output = "";
int i,jin=0;
cin >> A >> num1 >> num2;
while (A.size()>num1.size()) num1.insert(0, "0");
while(A.size()>num2.size()) num2.insert(0, "0");
for (i = num1.size()-1; i >= 0; i--)
{
int a = num1[i]-'0',b=num2[i]-'0',c=A[i]-'0';
if (a == 0 && b == 0 &&jin==0)
output.insert(0, "0");
else if (a + b + jin < c)
{
output.insert(0, to_string(a + b+jin));
jin = 0;
}
else if (a + b+jin == c)
{
output.insert(0, "0");
jin = 1;
}
else if (a + b +jin> c)
{
if (c == 0)
{
output.insert(0, to_string((a + b + jin)%10));
jin = (a + b + jin) / 10;
}
else
{
output.insert(0, to_string((a + b + jin) % c));
jin = (a + b + jin) / c;
}
}
if (i == 0)
output.insert(0, to_string(jin));
}
for (i = 0; output.size()>1 && output[i] == '0'; )
output.erase(i, 1);
cout << output;
return 0;
}