算法1
- 调用
DecimalFormat
类实现数字格式化,如代码所示
参考文献
pat
Java 代码
import java.text.DecimalFormat;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
int sum = a + b;
DecimalFormat df = new DecimalFormat("#,###");
System.out.println(df.format(sum));
}
}
算法2
模拟
- 将
sum
的绝对值变成字符串模式,用链表存储答案,对字符串s
从右往左枚举,每枚举3
位加一个","
,注意的是枚举到头的第一个时不需要添加","
,若sum
是负数,则需要在前面添加"-"
,最后对链表的元素进行输出
参考文献
pat
Java 代码
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int a = scan.nextInt();
int b = scan.nextInt();
int sum = a + b;
String s = Math.abs(sum) + "";
List<Character> list = new ArrayList<Character>();
int count = 0;
for(int i = s.length() - 1;i >= 0;i --)
{
list.add(s.charAt(i));
count ++;
if(count % 3 == 0 && count != s.length()) list.add(',');
}
if(sum < 0) System.out.print('-');
for(int i = list.size() - 1;i >= 0;i --) System.out.print(list.get(i));
}
}
大佬 tql,不过方法2那里 若sum是负数,则需要在前面添加”,” 这一句是不是写错了
这里吗??这个是打印个负号
我说的不是代码里的。。是你算法2中的那两行解释里, 最后一句-----> 若sum是负数,则需要在前面添加”,”,最后对链表的元素进行输出。
如果 sum 是负数的话,需要在前面输出 “-“,你写的是”,”,这里是写错了吧(手动滑稽)
hhhhhh,已修改,谢谢大佬指正~