题目描述
计算 a+b 并以标准格式输出总和----也就是说,从最低位开始每隔三位数加进一个逗号(千位分隔符),如果结果少于四位则不需添加。
输入格式
共一行,以标准格式输出 a+b 的和。
样例
输入:
-1000000 9
输出:
-999,991
算法1
利用to_string函数,现将俩数之和转化为字符串,利用指针i从后往前遍历该字符串,再借助计数变量j,每隔三位加入一个逗号,再分别去除判指针变量i为0时,,-48的情况以及指向字符串[i-1]位置为-号时的情况-,999,991.最后将结果输出即可。
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
string s=to_string(a+b);
string res;
for(int i=s.size()-1,j=0;i>=0;i--)
{
res=s[i]+res;
++j;
if(j%3==0 && i && s[i-1]!='-' )res=','+res;
}
cout<<res;
return 0;
}
算法2
利用to_string函数,现将俩数之和转化为字符串,利用指针i从前往后遍历该字符转,并用len记录该字符串数组的长度,若i指向该字符数组的位置为-,即结束后面循环。并且利用(i+1)%3=len%3来判断符合加逗号的情况以及去除指针变量i等于字符串[len-1]位置时的情况:-999,991,满足以上俩条件即可加逗号并输出。
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
cin>>a>>b;
string s=to_string(a+b);
int len=s.length();
for(int i=0;i<len;i++)
{
cout<<s[i];
if(s[i]=='-')continue;
if((i+1) % 3==len % 3 && i!=len-1)cout<<",";
}
return 0;
}