问题:
请实现程序输出以下星塔。
*
***
*****
***
*
需要在main函数的输入参数中设置5,输出5层星塔。如果是输入7,则是7层星塔。假设输入参数都是奇数,且都大于等于5,小于等于11。
代码:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入阶数:");
int in=sc.nextInt();
if(in%2==0||in<5||in>11)
return;
int i1;
for(int i=1;i<=in;i++){
//点数:2i-1 空格 in-2i+1
if(in/2+1>=i) {
i1=i;
for (int j = 1; j <= (in - 2 * i1 + 1) / 2; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i1 - 1; j++) {
System.out.print("*");
}
// for (int j = 1; j <= (in - 2 * i1 + 1) / 2; j++) {
// System.out.print(" ");
// }
System.out.println();
}
else {
i1=in-i+1;
for (int j = 1; j <= (in - 2 * i1 + 1) / 2; j++) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i1 - 1; j++) {
System.out.print("*");
}
// for (int j = 1; j <= (in - 2 * i1 + 1) / 2; j++) {
// System.out.print(" ");
// }
System.out.println();
}
}
}