方法 一:
j<m*i + n
内层循环变量j<每轮循环递增次数*外层循环循环变量 + 第一轮循环次数
* 1
*** 2
***** 5
******* 7
********* 9
******* 7
***** 5
*** 3
* 1
分析:
星星第1行到第5行,每行递增2,所以m为2;
第5行到第9行,每行递减2;所以m为-2;
第1行到第5行,左边的空格逐行减1;
第5行到第9行,左边的空格逐行加1;
public class Star2 {
public static void main(String[] args) {
for (int i = 0; i < 5; i++) {
for (int j = 0; j < -i + 4; j++) { //1 打印空格 m = -1;
System.out.print(" ");
}
for (int j = 0; j < 2 * i + 1; j++) {//2 打印星星 m = 2; n = 1
System.out.print("*");
}
System.out.println(); // 3 换行
}
for (int i = 0; i < 4; i++) {
for (int j = 0; j < i + 1; j++) { //1 打印空格 m = 1;n = 1
System.out.print(" ");
}
for (int j = 0; j < -2 * i + 7; j++) {//2 打印星星 m = -2; n = 7
System.out.print("*");
}
System.out.println(); // 3 换行
}
}
方法 二:
public void Exe1(){
Scanner sc = new Scanner(System.in);
int rows = sc.nextInt();
for (int row = 1;row<=2*rows-1;row++){
for (int col = 1;col<=Math.abs(rows-row);col++){
System.out.print(" ");
}
for (int col = 1;col<=2*rows-1-2*Math.abs(rows-row);col++){
System.out.print("*");
}
System.out.println();
}
}