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();}}
}
执行结果如下: