java请实现程序输出以下星塔||输出菱形
请实现程序输出以下星塔。
*
***
*****
***
*
需要在main函数的输入参数中设置5,输出5层星塔。如果是输入7,则是7层星塔。假设输入参数都是奇数,且都大于等于5,小于等于11。
第一种写法:
/**
* 请实现程序输出以下星塔
*/
import java.util.*;
public class HomeWork02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入星塔层数:");
int num = sc.nextInt();
while (num % 2 == 0 || num < 5 || num > 11) {
System.out.println("你输入的不在5-11之间的奇数,请重新输入!");
num = sc.nextInt();
}
for (int i = 1; i <= num - 3; i++) {
for (int j = num - 2; j > i; j--) {
System.out.print(" ");
}
for (int j = 1; j <= 2 * i - 1; j++) {
System.out.print("*");
}
System.out.println();
}
for (int i = 0; i <= num - 3; i++) {
for (int j = 0; j < i; j++) {
System.out.print(" ");
}
for (int j = (num-2)*2; j > 2 * i + 1; j--) {
System.out.print("*");
}
System.out.println();
}
}
}
执行结果如下:
第二种写法:
/**
* 请实现程序输出以下星塔
*/
import java.util.*;
public class HomeWork02 {
public static void main(String[] args) {
System.out.println("输入星塔层数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
for(int i=1;i<=num/2+1;i++)
{
for(int k=1;k<(num-(2*i-1))/2+1;k++)
{
System.out.print(" ");
}
for(int j=0;j<2*i-1;j++)
{
System.out.print("*");
}
System.out.println();
}
for(int i=1;i<=num/2;i++)
{
for(int k=1;k<i+1;k++)
{
System.out.print(" ");
}
for(int j=0;j<num-i*2;j++)
{
System.out.print("*");
}
System.out.println();
}
}
}
执行结果如下: