积极准备pat!
解题心得:
1、可能是几年没写acm或者用c++来编程,感觉这么一道简单题,还是花了1个小时。。
2、一开始直接用几个if来对和进行判断,但提交后总有点错误。
经检查发现是一开始用%1000或者%1000000来,但发现有个问题,例如1000000%1000000=0,我一开始天真以为是取后面6位,
而且1000001%1000000也不对,好吧。
3、最终更换思路,用字符串来解题。
代码可能写的并不美观。仅供解题记录吧
#include"stdio.h"
#include"string.h"
#include"math.h"
#include<iostream>
using namespace std;
int yu(int in){
if(in >= 0){
return in;
}else{
printf("-");
in =0 - in;
return in;
}
}
int main(){
int num1,num2,sum,num;
int a[10];
while(scanf("%d%d",&num1,&num2) != EOF){
sum = num1 + num2;
sum = yu(sum); //fix minus sign
int result[10] = {-1,-1,-1,-1,-1,-1,-1,-1,-1,-1};
int i = 9;
if(sum == 0){ //when sum =0;
result[9] = 0;
}
while(sum != 0){
result[i] = sum%10;
sum = sum/10;
i--;
}
for(i = 0;i < 10;i++){ //used for printing
if(result[i] == -1){
continue;
}
cout<<result[i];
if(i%3 == 0 && result[i] != -1 && i != 9){
cout<<",";
}
}
}
return 0;
}