首页 > 其他分享 >PAT甲级——1001 A+B format 千位分隔符

PAT甲级——1001 A+B format 千位分隔符

时间:2022-08-31 16:36:17浏览次数:71  
标签:输出 PAT 千位 format int sum 逗号 分隔符 1001

题目描述:输入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

相关文章