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).
计算a+b,并以标准格式输出总和——也就是说,数字必须用逗号分成三组(除非数字少于四位)。
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.
每个输入文件包含一个测试用例。每种情况都包含一对整数a和b,其中−10的6次方≤a,b≤10的6次方
。这些数字用空格隔开。
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.
对于每个测试用例,您应该在一行中输出a和b的总和。总和必须以标准格式书写。
Sample Input:
-1000000 9
Sample Output:
-999,991
import java.util.*;
class Main{
public static void main(String[]args)
{
Scanner sc = new Scanner(System.in);
int n1 = sc.nextInt();
int n2 = sc.nextInt();
int res = n1 + n2;
boolean flag = false;//如果是负数,则为true
if(res < 0)
{
flag = true;
res = - res;
}
String s = String.valueOf(res);//将数字转化为字符串处理
Stack<String> stack = new Stack<>();//利用栈后进先出的特性
int n = s.length();
while(true)
{
if(n - 3 >= 0)
{
stack.push(s.substring(n-3,n));//从后往前处理,压进栈
n -= 3;
if(n == 0)//防止n = 0时,截取到"",这也会压进栈内
{
break;
}
}
else
{
stack.push(s.substring(0,n));
break;
}
}
if(flag == true)
{
System.out.print("-");
}
while(!stack.isEmpty())
{
if(stack.size()!= 1)
{
System.out.print(stack.pop() + ",");
}
else
{
System.out.print(stack.pop());
}
}
}
}