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

一、题目:
image.png
二、注意:
  1. 看清题目说明10^6=1000000,有七位数字
  2. 取绝对值 abs(int) ,fabs(double)
  3. 将数字转变为字符串,利用字符串的切割输出
  string s = to_string(abs(number));  //完成无符号整数转变为字符串
  s.substr(0,3); //从字符串位置0开始的三个字符
  s.substr(4);  //从字符串位置4开始到结束
  1. commas:逗号
  2. input specification: 输入标准
三、解析:
#include <iostream>
#include <string>
using namespace std;

int main()
{
    int a,b;
    cin >>a >>b;//输入a和b
    int sum=a+b;
    if(sum<0)
           cout <<"-";
    string s = to_string(abs(sum)); //进行类型转换,将int型转换为string型
    int length = s.length(); //获取字符串的长度
    if(sum<1000&&sum>-1000) //sum属于999到-999,长度小于等于3
    {
        cout <<abs(sum)<<endl;
    }    
    else if((sum<1000000 && sum>=1000)||(sum>-1000000&&sum<=-1000)){   //sum属于1000到999999和-1000到-999999长度大于3
        int i = length-3;//获取多余长度字符
        cout <<s.substr(0,i)<<","<<s.substr(i)<<endl;  //输出
    }
    else{
        int j = length-6;
        cout <<s.substr(0,j)<<","<<s.substr(j,3)<<","<<s.substr(j+3)<<endl;
    }
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容