题目描述:输入a和b,要求输出ab之和,要用xx,xxx,xxx格式输出
分析
- 三位一个逗号这种格式就是所谓的千位分隔符
- 千位分隔符的特点在于:对于每一个逗号,其后面的数字个数都是3的整数倍
- 算法有很多,核心在于千位分隔符的特点
算法
- 将要ab之和sum的绝对值倒序存储在一个char数组中,(数字的低位会放在数组的低位),最后倒序输出char数组时适时输出逗号即可
- 输出逗号的时机:当待输出的位数是3的正整数倍时
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N =10;
int main()
{
int a,b,sum;
cin>>a>>b;
sum=a+b;
if(sum<0)
{
cout << "-";
sum*=-1;
}
//将sum倒序存入数组q
char q[N];
int idx=0;
do
{
q[idx++]=sum%10+'0';
sum/=10;
}while(sum);
//倒序遍历数组q
for (int i = idx-1; i >=0; i -- )
{
cout << q[i];
if(i&&i%3==0)
cout << ",";
}
return 0;
}
标签:输出,PAT,千位,format,int,sum,逗号,分隔符,1001
From: https://www.cnblogs.com/tangxibomb/p/16643528.html