题目描述:
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();}} }