PAT甲级1001. A+B Format (20)

题目链接

https://www.patest.cn/contests/pat-a-practise/1001

Calculate a + b and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits).

Input

Each input file contains one test case. Each case contains a pair of integers a and b where -1000000 <= a, b <= 1000000. The numbers are separated by a space.

output

For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.

Sample Input
-1000000 9
Sample Output
-999,991

思路分析

1.也就是输入两个数a和b,把a+b的和按照银行标准输出出来,每三位输出一个逗号

2.考虑特殊情况比如 a+b = 0可以直接输出

3.把a+b和放在字符数组中,判断下标j满足条件输出逗号

代码

#include<iostream>
using namespace std;

int main()
{
	int a,b;
	int c[100000];//用来倒序保存sum的每一位
	cin>>a>>b;
	int sum = a+b;
	int t = 1;
	if(sum < 0)
		t = -1;
	int i = 1;
	int k = t*sum;//保证sum绝对值为正
	while(k)//倒序保存sum
	{
		c[i] = k%10 ;
		i++;
		k = k/10; 
	}//此时sum一共有i-1位
	if(sum < 0)//sum < 0 先输出-号 
		cout<<"-";
	if(sum == 0) //考虑特殊情况 这也是一个测试点 一开始这个情况没考虑到
		cout<<sum;
	for(int j = i-1 ;j >= 1;j--)
	{
		if(j%3 == 0 && j!=i-1)//判断条件,当j为3的倍数且j不是i-1(第1位)输出,
			cout<<",";	
		cout<<c[j];
	}
	return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值