PAT甲级真题及训练集第一题:
计算A+B的值,并按照规定格式输出(从低位开始,每三位插入一个逗号)
代码如下:
#include<iostream>
#include<cstdlib>
using namespace std;
int judge_low(int x);
int main(){
int a,b;
cin>>a>>b;
int c=a+b;
if(c/1000==0) cout<<c;
else if(c/1000000==0){
int low=abs(c)%1000;
int lnum=judge_low(low);
int high=c/1000;
cout<<high<<",";
for(int i=0;i<lnum;i++){
cout<<"0";
}
cout<<low;
}
else{
int low=abs(c)%1000;
int lnum=judge_low(low);
int mid=(abs(c)/1000)%1000;
int mnum=judge_low(mid);
int high=c/1000000;
cout<<high<<",";
for(int i=0;i<mnum;i++){
cout<<"0";
}
cout<<mid<<",";
for(int i=0;i<lnum;i++){
cout<<"0";
}
cout<<low;
}
return 0;
}
int judge_low(int x){//判断输出0的个数
if(x<10){
return 2;
}else if(x<100){
return 1;
}else{
return 0;
}
}
本方法需要注意0个数的输出