PAT1001 A+B Format
输入整数a和b,输出a+b的标准格式
首先处理输入,得到相加结果。
每三位需要插入分隔符"," ,因此使用%1000操作得到低三位保存在数组中,然后将结果/1000消去低三位。
两数都在-10^6~10^6间,相加结果不超过-2000000~2000000,最多分割三次。因此数组长度为3
循环操作,直到结果为0,记录此时数组下标
// PAT1002.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
int main()
{
int a, b;
cin >> a >> b;
a = a + b;
if (a < 0) cout << "-"; //负数输出-
if (a == 0) {
cout << 0;
return 0;
}
a = abs(a);
int res[3]; //两数之和最大为2000000,最小为-2000000
for (int i = 0; i < 3; i++) {
res[i] = a % 1000;
cout << res[i] << endl;
a = a / 1000;
if (a == 0) {
b = i;
break;
}
}
if (b > 0) {
cout << res[b] << ",";
for (int i = b - 1; i > 0; i--) {
cout << setfill('0') << setw(3) << res[i] << ",";
}
cout << setfill('0') << setw(3) << res[0];
}
else {
cout << res[0];
}
return 0;
}