题目是简单的, 就是有一个问题要注意, 在第8行的地方, double h = (double)n / 2; , 不能改写成 double h = n / 2; , 如果写成第二个代码的话, 双精度浮点数变量的小数部分一定是.0, 因为整型n / 2 的结果一定是一个整型数. 代码如下:
1 import java.io.BufferedReader; 2 import java.io.InputStreamReader; 3 4 public class Main { 5 6 public static void main(String[] args) throws Exception { 7 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 8 String[] str = br.readLine().split(" "); 9 int n = Integer.parseInt(str[0]);10 if (3 <= n && n <= 21) {11 double h = (double)n / 2;12 int x = (int) (n / 2);13 double y = h - x;14 // System.out.print(y);15 if (y >= 0.5) {16 h++;17 }18 // System.out.println((int)h);19 for (int i = 0; i < (int) h; i++) {20 for (int j = 0; j < n; j++) {21 System.out.print(str[1]);22 }23 System.out.println();24 }25 }26 27 }28 29 }