1.当想输入一个数字再输入一个字符串要多一个nextLine();
int a =scan.nextInt();
String b = scan.nextLine();
        在Java编程语言中,使用Scanner类进行输入时,需要注意nextInt()和nextLine()方法的使用。nextInt()用于读取下一个整数,而nextLine()用于读取下一行文本。代码片段int a = scan.nextInt();会从输入中读取一个整数,并将其存储在变量a中。然而,这并不会读取该行剩余的内容,也不会读取下一行的内容。紧接着的代码片段String b = scan.nextLine();会尝试读取下一行文本,并将其存储在变量b中。但是,如果nextInt()之后直接使用nextLine(),那么nextLine()会读取到nextInt()之后的回车符,而不是下一行的内容。这是因为nextInt()读取整数后,回车符还留在输入流中,而nextLine()会读取这个回车符,认为是一个空行。为了避免这个问题,通常在nextInt()之后调用nextLine()之前,需要额外调用一次nextLine()来“消耗”掉那个回车符。例如:
int a = scan.nextInt();
 scan.nextLine(); // 消耗掉nextInt()后的回车符
 String b = scan.nextLine(); // 现在可以正确读取下一行文本
  
2.小数精度格式化用printf
System.out.printf("%.2f",dp[n][0]);保留两位小数(蜗牛题)
与
System.out.printf("%.2d",dp[n][0]);
不一样
待更新……