资源限制
时间限制:1.0s 内存限制:256.0MB
请编程输出一个菱形。输入为菱形中心到顶点的距离
样例输入
2
样例输出
*
***
*****
***
*
思路:把上半部分解决,倒序输出下半部分即可。核心内容就是,它怎么取空格数,怎么得出每行的*号数,这样再去理解会好很多。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for (int i = 0; i < n + 1; i++) { // 上半部分,正序
for (int j = 0; j < n - i; j++) { // 枚举控制空格个数
System.out.print(" ");
}
for (int j = 0; j < (i + 1) * 2 - 1; j++) { // (层数+1)*2-1 枚举每行*号
System.out.print("*");
}
System.out.println(); // 换行
}
for (int i = 0; i < n + 1; i++) { // 下半部分,倒序
for (int j = 0; j < i + 1; j++) { // 层数+1
System.out.print(" ");
}
for (int j = 0; j < (n - i) * 2 - 1; j++) { // (输入层数-层数)*2-1 倒序输出
System.out.print("*");
}
System.out.println(); // 换行
}
}
}