#include <iostream>Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).
Input
Each input file contains one test case. Each case contains a pair of integers a and b where -1000000 <= a, b <= 1000000. The numbers are separated by a space.
Output
For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.
Sample Input-1000000 9Sample Output
-999,991
這道題我提交了三次,第一次提交之后顯示部分正確,檢查了代碼發現輸出負號之后沒有對數進行處理,即后來判斷時-100000也小于1000啊。
改了之后提交第二次,測試結果正確的次數多了,還是部分錯誤,我又檢查了一下,用了幾個特殊的數來試,發現100000輸出的結果是100,0,因為沒有考慮后面的數字可能會發生沒有三位但是卻沒有自動補全0的情況。如果這個時候仍然使用使用C++可能麻煩很多,就想著要利用C語言的printf的輸出固定格式,沒有達到自動補全0,修改之后提交通過。
下面貼我的代碼:#include <iostream>using namespace std;
int main(void){
int a,b;
int sum=0;
while(cin>>a>>b){
sum=a+b;
if(sum<0){
sum=-sum;
cout<<"-";
}
if(sum<1000)
cout<<sum;
else if(sum>=1000&&sum<1000000)
printf("%d,%03d",(sum/1000),sum%1000);
else if(sum>=1000000)
printf("%d,%03d,%03d",sum/1000000,((sum%1000000)/1000),sum%1000);
}
return 0;
}