传送门:A + B Problem II
注意:
字符转数字:减去‘0’
数字转字符:加上‘0’
字符串不能直接加数字,可以先转为字符在进行+连接。
#include <iostream> #include <string> using namespace std; string sum(string, string); int main() { int nt; cin >> nt; for (int i = 1; i <= nt; ++i) { string sa, sb; cin >> sa >> sb; if (i != 1) cout << endl; cout << "Case " << i << ":" << endl; cout << sa << " + " << sb << " = " << sum(sa, sb) << endl; } return 0; } string sum(string sa, string sb) { string sres; reverse(sa.begin(), sa.end()); reverse(sb.begin(), sb.end()); int na, nb, ni = 0; for (decltype(sa.size()) i = 0; i < sa.size() || i < sb.size(); ++i) { na = i < sa.size() ? sa[i] - ‘0‘ : 0; nb = i < sb.size() ? sb[i] - ‘0‘ : 0; ni += na + nb; sres += (ni%10 + ‘0‘); ni /= 10; } reverse(sres.begin(), sres.end()); return sres; }
原文:https://www.cnblogs.com/tianyahai/p/11922777.html