最新想法:
最多是七位数,而且只有一组输入,完全不用考虑算法复杂度。
直接判断是否为负,并输出符号
巧妙的地方:while循环的下一次再添加逗号。(防止出现,999,991的情况)
婼姐的方法真的很巧妙,能理解,但是不知道如果是自己该怎样想出那种方法。
所以仅仅把婼姐的代码当做学习用,还是得自己来实现啊。
参考了网上很多的博客,真的不好,直接贴代码,思路很差劲的也有。下面这是我觉得最能理解的好方法。
思路分析:
1、a=a+b,当a>1000时,用ans[i++]数组存储a%1000的值,a=a/1000;
2、首先将a带符号输出,若i>0,输出“,”,然后逆向输出”ans[i]’数组,类似地,若i>0,输出“,”。
注意输出的时候0有可能是三个0;(例如1000)
代码有点low,强迫自己学习C++中
#include<iostream>
#include<vector>
using namespace std;
int main() {
int a,b;
cin >> a >> b;
a+=b;
if(a<0){
a=-a;
cout << "-";
}else if(a==0){
cout << "0";
return 0;
}
vector<int> ve;
while(a!=0){
ve.push_back(a%1000);
a/=1000;
}
for(int i=ve.size()-1;i>=0;i--){
if(i!=ve.size()-1) printf(",%03d",ve[i]);
else cout << ve[i];
}
return 0;
}