菱形星星
题目描述:
1、 菱形星星:接收控制台输入一个正奇整数,打印一个菱形[如输入数字9打印]
* 1
*** 3
***** 5
******** 7
***** 5
*** 3
* 1
题目注意空格,同时注意菱形每行的个数,我是将这分成上下两个部分,上层递增,下层递减。
import java.math.BigDecimal; import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("输入一个奇数:"); int n = sc.nextInt(); int i=1; int max = n - 2; // 最大的一行*的个数 for(;i<n;i=i+2) //用来控制最外层循环 { int kong = (max-i)/2; //设置空行 for(int j=0;j<kong;j++) System.out.print(" "); //空格个数循环 //打印* for(int k=0;k<i;k++) System.out.print("*"); System.out.println(); } //打印下半部分,此时i为最高的 for(int j=i-2;j>0;j=j-2) //设置循环打印次数 { int kong = (max-j)/2; //设置空行 for(int s=0;s<=kong;s++) { System.out.print(" "); //空格个数循环 } for(int k=j-2;k>0;k--) { System.out.print("*"); } System.out.println(); } } }