HPU--1392 分隔A+B

题目描述

让我们回到最初的A+B问题!

我们知道英语习惯每三位换一个词(thousand、million、billion……),所以数字常常每三位用一个逗号隔开,如:123,456,789,而我们就更习惯于每四位隔开:1,2345,6789

为了与国际接轨,这一题考察你国际化的表示方法。

给出你AB,请你输出A+B,并用“,”每三位隔开(注意是从个位起)。

输入

多组测试数据,请处理到文件结束。

每组一行是两个数AB

-109 ≤ A ≤ 109

-109 ≤ B ≤ 109

输出

请按要求格式输出A+B

样例输入

1 2
1234 2345
-1234 234

样例输出

3
3,579
-1,000
 1 #include<stdio.h>
 2 int main()
 3 {
 4     int a,b,i,j;
 5     char num[20];
 6     long long sum;
 7     while(scanf("%d %d",&a,&b)!=EOF)
 8     {
 9         sum=a+b;
10         long long x;
11         x=sum;
12         if(sum<=0) sum=-sum;  //和为负数,忘记考虑,错了一次 
13         int k=0,i=0,l=0;
14         while(sum!=0)
15         {
16             num[i++]=sum%10+'0';  //刚开始忘记了考虑是字符 
17             sum/=10;
18             k++;
19             l++;
20             if(k==3)
21             {
22                 num[i]='a';
23                 i++;
24                 k=0;
25             }
26         }
27         if(x<0) printf("-");
28         if(x==0) printf("0");  //等于0忘记考虑又错了一次 
29         if(l%3==0)   //输出的首位不能是逗号 
30         {
31             
32             for(j=i-2;j>=0;j--)
33             {
34                 if(num[j]=='a')
35                     printf(",");
36                 else    
37                     printf("%d",num[j]-'0');
38             }   
39             printf("\n");    
40         }
41         else
42         {
43             for(j=i-1;j>=0;j--)  
44             {
45                 if(num[j]=='a')
46                     printf(",",num[j]);
47                 else    
48                     printf("%d",num[j]-'0');
49             }
50             printf("\n");    
51         }
52     }
53     return 0;
54 }

 

posted @ 2017-08-12 17:07  ⊙∽⊙Perseverance  阅读(145)  评论(0编辑  收藏  举报