1001 A+B Format (20point(s))
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≤10^6. 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
题目大意:计算a,b 之和,按照xxx,xxx,xxx形式输出。
解题思路:先输出符号位,然后取绝对值后转化成字符串,每当剩余位数是3的倍数时,输出“,”,题目很简单。
Java代码:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int sum = a + b;
if(sum<0) System.out.print("-");
String s = Math.abs(sum)+"";
for(int i=0; i<s.length(); i++)
{
if(i!=0&&(s.length()-i)%3==0)
{
System.out.print(",");
}
System.out.print(s.charAt(i));
}
}
}
C++代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int a, b;
scanf("%d %d", &a, &b);
if(a+b<0) printf("-");
string s;
stringstream ss;
ss << abs(a+b);
ss >> s;
for(int i=0; i<s.size(); i++)
{
if(i!=0&&(s.size()-i)%3==0) printf(",");
printf("%c", s[i]);
}
return 0;
}