题目介绍

实现思路

  • 首先这是一个字符串处理问题,那我们首先想到string类及其成员函数
  • 既然输入是int类型,而这题我们对字符串进行处理会方便很多,那么就用to_string函数把int变为string类型
  • 然后我们要处理3个数一组(从右往做算),那么我们可以用取模
  • 但是如果是负数那么就需要考虑负号,负号是不算数的,所以我们需要去处理,解决的办法是先输出当前的字符,然后判断是否为负号,如果是负号那么跳过当前循环直接进入下一轮

实现代码

#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
#include<sstream>
#include<algorithm>
using namespace std;

int main()
{
#ifdef ONLINE_JUDGE                
#else    
    freopen("1.txt", "r", stdin);
#endif 
    int a,b;
    cin>>a>>b;

    string str=to_string(a+b);

    int len=str.length();

    for(int i=0;i<len;i++)
    {
        cout<<str[i];
        if(str[i]=='-')
            continue;

/*这一个判断语句解释一下,i+1是指i从0开始,因为实际上是没有第0个字符串的,只是C的数组是从0开始,所以需要变一下,len%3是精华,这里既考虑了3个一组,又考虑了负号的情况,自己体会一下;最后的条件就是防止最后一组也是3个数,但不输出逗号的情况,这样就表明无论最后一组是否为3个数一组,都不加逗号*/
        if((i+1)%3==len%3 && (i != len-1))
            cout<<",";
    }
    return 0;
}

lionの金库