【HPU】1392 分隔A+B

来源:互联网 发布:富士施乐2011网络扫描 编辑:程序博客网 时间:2024/06/15 22:01

题目描述

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

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

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

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

输入

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

每组一行是两个数AB

-109 ≤ A ≤ 109

-109 ≤ B ≤ 109

输出

请按要求格式输出A+B

样例输入

1 21234 2345-1234 234

样例输出

33,579-1,000
AC代码:
#include<stdio.h>int main(){    int a,b,i,j;    char num[20];    long long sum;    while(scanf("%d %d",&a,&b)!=EOF)    {        sum=a+b;        long long x;        x=sum;        if(sum<=0) sum=-sum;  //和为负数,忘记考虑,错了一次         int k=0,i=0,l=0;        while(sum!=0)        {            num[i++]=sum%10+'0';  //刚开始忘记了考虑是字符             sum/=10;            k++;            l++;            if(k==3)            {                num[i]='a';                i++;                k=0;            }        }        if(x<0) printf("-");        if(x==0) printf("0");  //等于0忘记考虑又错了一次         if(l%3==0)   //输出的首位不能是逗号         {                        for(j=i-2;j>=0;j--)            {                if(num[j]=='a')                    printf(",");                else                        printf("%d",num[j]-'0');            }               printf("\n");            }        else        {            for(j=i-1;j>=0;j--)              {                if(num[j]=='a')                    printf(",",num[j]);                else                        printf("%d",num[j]-'0');            }            printf("\n");            }    }    return 0;}


原创粉丝点击