题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805528788582400
思路
问题1,插入逗号时,i从1开始
问题2,长度为3的倍数时,最后一个不可以插入
问题3,长度为4时,因为我解决问题2的方法,会导致少插入一个逗号,因此加入了一个特判
算法笔记上解决的方法也很巧妙,采用一边判断一边print的方法可以把我的问题都规避
for(int k = len - 1; k >= 0; k++){printf("%d",num[k]);if(k>0&&k%3==0)printf(",");}
代码
#include<iostream>#include<string>#include<algorithm>using namespace std;int main(){int a, b, count = 0;string ans;cin>>a>>b;int c = a + b;if(c<0) cout << '-';c = abs(c);do{ans.push_back(c%10+'0');c = c/10;}while(c!=0);for(int i = 1; i < ans.length()-1;i++){if(ans.length() == 4){ans.insert(3,",");break;}if(i%3==0){ans.insert(i+count,",");count++;}}reverse(ans.begin(),ans.end());cout<<ans;}
