您的位置:首页 > 其它

hpuoj【1392】分割A+B【水题】&&【输入输出格式要求】

2017-08-12 15:58 225 查看


1392: 分隔A+B [水题]

时间限制: 1 Sec 内存限制:
128 MB

提交: 177 解决:
28 统计


题目描述

让我们回到最初的
A+B
问题!
我们知道英语习惯每三位换一个词(thousand、million、billion……),所以数字常常每三位用一个逗号隔开,如:
123,456,789
,而我们就更习惯于每四位隔开:
1,2345,6789

为了与国际接轨,这一题考察你国际化的表示方法。
给出你
A
B
,请你输出
A+B
,并用“,”每三位隔开(注意是从个位起)。


输入

多组测试数据,请处理到文件结束。
每组一行是两个数
A
B

-109 ≤
A ≤ 109

-109 ≤
B ≤ 109



输出

请按要求格式输出
A+B



样例输入

1 2
1234 2345
-1234 234


样例输出

3
3,579
-1,000

解析:
先计算结果,然后从最后一位依次存入数组中,然后逆序输出,每三个数输出一个逗号。
注意负数和0的情况。

程序如下:
#include<cstdio>
int main()
{
long long n,m;
while(scanf("%lld%lld",&n,&m)!=EOF)
{
long long sum;
int a[10000],i,j=0;
sum=n+m;
if(sum>=0&&sum<1000)
printf("%d\n",sum);
else if(sum<0)
{
sum=-sum;
while(sum>0)
{
a[j]=sum%10;
sum/=10;
j++;
}
printf("-");
for(i=j-1; i>=0; i--)
{
printf("%d",a[i]);
if(i%3==0&&i!=0)
printf(",");
}
printf("\n");
}
else
{
while(sum>0)
{
a[j]=sum%10;
sum/=10;
j++;
}
for(i=j-1; i>=0; i--)
{
printf("%d",a[i]);
if(i%3==0&&i!=0)
printf(",");
}
printf("\n");
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: