PAT A1001 A+B Format
思路:先进行符号处理,再计算除 3 结果 cnt 和模 3 的余数 remain,根据 cnt 和 remain 的不同来处理,化简成倍数为 3 的子串问题。
#include<iostream>
#include<string>
using namespace std;
int main() {
int a, b, sum;
cin >> a >> b;
sum = a + b;
if(sum < 0) {
sum = -sum;
cout << "-";
}
string s = to_string(sum);
int cnt = s.size() / 3, remain = s.size() % 3;
if(cnt == 0) {
cout << s;
return 0;
}
if(remain == 1) {
cout << s[0] << ",";
s = s.substr(1);
}
if(remain == 2) {
cout << s[0] << s[1] << ",";
s = s.substr(2);
}
cnt--;
for(int i = 0; i < s.size(); i++) {
if(cnt > 0 && i > 0 && i % 3 == 0) {
cout << ",";
cnt--;
}
cout << s[i];
}
return 0;
}