趋势科技第一题
#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; }
#趋势科技##笔试题目#