1001 A+B Format (20 分)
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 −106≤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
题目大意:输入两个数,把他们加起来,得到的数按照3位缩进输出。
思路:因为a和b均限制了大小,所以考虑用一个char ch = new char[9]大小的数组,
用i来控制数组进度,
并用count控制位数,
用for循环得到c %10的值,并存放到ch[i]中,初始化count = 0,如果count%3 == 0,则在ch数组中放入',' ,直到c = 0。
跑出for循环后,再倒着输出,需要注意用for循环输出的时候要先将i--;因为上一个for循环中的最后一次i++是多余的。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
char ch[] = new char[9];
int a = input.nextInt();
int b = input.nextInt();
int c = a + b;
if(c < 0) System.out.print("-");
if(c == 0) System.out.print("0");
int temp = Math.abs(c);
int i;
int count = 0;
for(i=0; temp!=0; i++) {
int t = temp % 10;
ch[i] = (char)(t+'0');
temp /= 10;
count++;
if(count%3 == 0 && temp!=0) ch[++i] = ',';
}
for(i--; i>=0 && ch[i] != ' '; i--)
System.out.print(ch[i]);
}
}