PAT甲级题1001,超级简单思路
- 首先用“%”和“/”把计算结果保存到数组里,
- 然后从高位开始输出,在输出的同时数数,还剩3位或者6位时加“,”。
1001 A+B Format
Calculate a+b and output the sum in standard format – that is, the digits must be separated into groups of three by commas (unless there are less than four digits).
Input Specification:
Each input file contains one test case. Each case contains a pair of integers a and b where -10 6≤a,b≤106 . The numbers are separated by a space.
Output Specification:
For each test case, you should output the sum of a and b in one line. The sum must be written in the standard format.
Sample Input:
-1000000 9
Sample Output:
-999,991
Sample Output:
-999,991
代码
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
int main() {
// insert code here...
int a;
int b,sum,i=0,n=0;
int e[7];
cin>>a>>b;
sum=a+b;
if(sum==0)//如果sum=0的话,就直接输出
{
cout<<sum;
}
while(sum!=0)
{
if(sum<0)
{
cout<<'-';
sum=-sum;
}
e[i]=sum%10;//从低位到高位赋值给e[i]
sum=sum/10;
n++;
i++;
}
/*
这里我想了好久:
1、输出的时候要从后往前数3个数,然后加“,”,为了方便,令i=0开始输出,输出的时候e[n-i-1],然后数到还剩3个或者6个数时加“,”;
2、sum是3位数或者6位数的时候不能输出“,”,为了防止在n=3或者n=6时首先输出逗号变成“,999,999”,所以,i=0时不输出“,”;
*/
for(i=0;i<n;i++)
{
if((n-i)%3==0 && i!=0)
{
cout<<',';
}
cout<<e[n-i-1];
}
return 0;
}