PTA 空心菱形 JAVA

请编写程序,输入菱形的高,输出由星号勾勒出的菱形。

输入格式

行数(正整数)

输出格式

若行数为奇数,则显示星号勾勒出的菱形,否则显示错误信息。

输入样例1

5

输出样例1

  *
* *
*   *
* *
*

输入样例2

8

输出样例2

Error

简单的方法是将菱形的上下两个部分拆分开来,上半部分为一个三角形,下半部分为倒三角形,在程序中先打印出三角形,在打印出倒三角形。

还有一种方法是使用绝对值,通过一些规律来直接画出整个菱形

 1 import java.util.Scanner;//导入Scanner类,用于扫描输入流
 2 public class one{
 3   public static void main(String[] args){
 4            Scanner scan = new Scanner(System.in);
 5            int n = scan.nextInt();//获取输入流中整数传给n变量
 6            if(n % 2 == 0)System.out.println("Error");
 7          //根据题意判断是偶数的话输出错误提示,奇数就打印图案
 8            else{
 9             for(int i = -(n - 1) / 2;i <= (n - 1) / 2;i++){
10               //i代表了行数,同时也记录了每行需求前置空格的数量
11                 for(int j = 1;j <= (n - Math.abs(i));j++){
12    //从最左侧开始打印,n-绝对值(i)即为最右侧*所在位置,也是一行的最后值
13                   if(j <= Math.abs(i) || j > Math.abs(i) + 1 && j < (n - Math.abs(i)))
14     //j<=绝对值(i)即前置空格,j > 绝对值(i)+1 即第一个*号后,J <最后值,即第二个*号前
15                     System.out.print(" ");//打印空格
16                   else
17                       System.out.print("*"); //打印*
18                 }
19                 System.out.println();//一行打印结束,换行
20             }
21          }
22   } 
23 }

 

posted @ 2021-12-27 19:49  Imepeto  阅读(187)  评论(0)    收藏  举报