A1001

两数相加,结果每三位添加一个逗号。一开始没有注意到%03d的问题,因为有某些数据逗号分割后高位带0,因此需要用0来补充空位。
 1   #include<iostream>
 2   #include<stdio.h>
 3   using namespace std;
 4   int main(){
 5       int a,b;
 6       scanf("%d%d",&a,&b);
 7       int sum=a+b;
 8       if(sum<0){
 9           printf("-"); 
10          sum=-sum;
11      }
12      if(sum<1000)
13       printf("%d",sum);
14      if(sum>=1000&&sum<1000000) 
15       printf("%d,%03d",sum/1000,sum%1000);
16      if(sum>=1000000&&sum<10000000) 
17        printf("%d,%03d,%03d",sum/1000000,(sum%1000000)/1000,sum%1000);
18      return 0;
19  } 

另解:使用字符串数组string:

 1 #include<iostream>
 2 #include<stdio.h>
 3 using namespace std;
 4 int main(){
 5     int a,b;
 6     cin>>a>>b;
 7     string s=to_string(a+b);
 8     int len=s.length();
 9     for(int i=0;i<len;i++){
10         cout<<s[i];
11         if(s[i]=='-') continue;
12         if((i+1)%3==len%3 && i!=len-1) cout<<",";
13     }
14     return 0;
15 } 
posted @ 2019-12-16 18:53  老葛  阅读(197)  评论(0编辑  收藏  举报