PAT甲级习题1001 A+B Format [19/20]
题目
代码
#include<iostream>
#include<string>
using namespace std;
int main(){
//input
int a, b, sum, flag = 0; //flag indicates the sign
cin >> a >> b;
sum = a + b;
if(sum < 0)
flag = -1;
string result = to_string(sum);
int len = (result.length() + flag) % 3 -flag; //substring before first commas
int times = (result.length() + flag) / 3; //nums of printed array
//print
for(int i = 0 ; i < len; i++)
cout << result[i];
for(int i = 0; i < times; i++){
if(flag == -1 && len == 1 && i == 0)
cout << result.substr(len, 3);
else
cout << "," << result.substr(3*i+len, 3);
}
return 0;
}
得分
19/20
有一个测试用例没有通过,但是想不明白为什么
想法
- 在测试过程中注意累计容易出错的测试用例,不要想起一个测试一个;
- 要对STL更加熟悉,如本次使用的:to_string(), substr()。
- 第一道PTA练习,不是很熟练,希望能再接再厉;
- 感觉代码写的不够简洁,要写的更好些。