趋势科技第一题
#include<iostream>
#include<string>
using namespace std;
string add(string &a1, string &a2) {
string maxa,mina;
int i = 0,j=0;
string a3;
for (i = a1.size() - 1; i >0; i--) {
if (a1[i] == '.')
break;
}
for (j = a2.size() - 1; j >0; j--) {
if (a2[j] == '.') {
break;
}
}
if (i > 0 && j > 0) {
if (a1.size()-i <a2.size()- j) {
a3 = string((a2.size() - j) - (a1.size() - i), '0');
a1 = a1 + a3;
}
else if (a1.size() - i >a2.size() - j) {
a3 = string((a1.size() - i)-(a2.size() - j) , '0');
a2 = a2 + a3;
}
}
if (i > 0 & j == 0) {
a2 += '.';
a3 = string(a1.size()-1 - i, '0');
a2 = a2 + a3;
}
if (j > 0 & i == 0) {
a1 += '.';
a3 = string(a1.size() - 1 - j, '0');
a1 = a1 + a3;
}
if (a1.size() > a2.size()) {
maxa = a1;
mina = a2;
}
else {
maxa = a2;
mina = a1;
}
a3 =string(maxa.size() - mina.size(),'0') ;
mina = a3 + mina;
for (int i = maxa.size() - 1; i > 0; i--) {
if (maxa[i] == '.') continue;
int num= maxa[i] - '0' + mina[i] - '0' ;
maxa[i] = num % 10+'0';
if (num >= 10) {
if(maxa[i-1]!='.')
maxa[i - 1] += 1;
else
maxa[i - 2] += 1;
}
}
int num= maxa[0] - '0' + mina[0] - '0';
maxa[0] = num % 10+'0';
if (num >= 10) {
maxa = '1' + maxa;
}
return maxa;
}
int main() {
string a1, a2;
cin >> a1 >> a2;
cout<<add(a1, a2);
system("pause");
return 0;
} #趋势科技##笔试题目#
