1473. A + B 格式
计算 a+ba+b 并以标准格式输出总和----也就是说,从最低位开始每隔三位数加进一个逗号(千位分隔符),如果结果少于四位则不需添加。
输入格式
共一行,包含两个整数 aa 和 bb。
输出格式
共一行,以标准格式输出 a+ba+b 的和。
数据范围
−106≤a,b≤106−106≤a,b≤106
输入样例:
-1000000 9
输出样例:
-999,991
此题需要耐心模拟
#include<iostream> #include<algorithm> #include<string> using namespace std; int main() { int a ,b ,c ,cnt = 0 ,flag = 0 ,cntt = 0 ,idx = 0; string s ,t; cin >> a >> b; c = a + b; t = to_string(c); if (c < 0) { c = -c; flag = 1; if (t.size() <= 4) { cout << t; return 0; } } else { if (t.size() <= 3) { cout << t; return 0; } } t = to_string(c); // cout << t.size() << endl; if (t.size() % 3 == 0) cnt = t.size() / 3 - 1; else cnt = t.size() / 3; // cout << "cnt = " << cnt << endl; while (c) { s += to_string(c % 10); c /= 10; idx++; if(idx % 3 == 0 && cntt < cnt) { s += ","; cntt++; } } if (flag) cout << '-'; for (int i = s.size() - 1; i >= 0; i--) cout << s[i]; return 0; }
高手的代码
#include<bits/stdc++.h> using namespace std; int main(){ int a,b,sum; cin>>a>>b; sum = a + b; if( sum < 0 ){ cout<<"-"; sum = -sum; } string s = to_string(sum); int len = s.length(); for(int i = 0 ; i < len ; i++){ cout<<s[i]; if((i+1)%3==len%3&&i!=len-1) cout<<"."; } return 0; }