• 打印一个空心菱形--0702


    代码:

    package dome1;
    
    import java.util.Scanner;
    
    /**
     * @author M.Wang
     * 打印一个空心的菱形
     *      *
     *     * *
     *    *   *
     *   *     *
     *    *   *
     *     * *
     *        *
     */
    public class TuXing5 {
        @SuppressWarnings("resource")
        public static void main(String[] args) {
         Scanner input = new Scanner(System.in);
         System.out.println("请输入您需要绘制的图形行数:");
         int sum = input.nextInt();
    //     打印空心菱形分两部分打印,先打印菱形的上半部分,在打印下半部分
         /*上半部分空心等腰三角形规律分析:
          先分析等腰三角形右边的空格规律:以上边菱形为例,上半部分有4行,空格规律为4-当前第几行
          再分析星号:为实心等腰三角形为分析基本,第一行一个星号,,其他行数皆为两个星号,这两个星号的位置都在等腰三角形行的首尾位置
         中间都是空格,分析星号的位置规律(这边分析的位置为等腰三角形,包括中间空格,不包括右边空格):
             行数              星号位置          星号位置
             第一行          第一个
             第二行          第一个              第三个
             第三行          第一个              第五个
             第四行          第一个              第七个
             以此推出,星号的位置与行数的关系:1或(2*行数-1),中间的输出空格
          */
         for(int i = 1;i <= sum;i++) {
             for(int j = 1;j <= sum-i;j++) {
                 System.out.print(" ");
             }
             for(int j = 1;j <= 2*i-1;j++) {
                 if(j == 1 || j == 2*i-1) {
                     System.out.print("*");
                 }else {
                     System.out.print(" ");
                 } 
             }
             System.out.println();
         }
    //     分析下半部分图形输出
         /*下半部分为倒立的空心等腰三角形
          下半部分等腰三角形总行数=输入行数-1行,
         还是先分析右边的空格三角形:
             行    个数
             1    1
             2    2
             3    3
         推出:右边空格三角形规律为:第几行就有几个空格
         分析空心倒立三角形,还是以实心倒立三角形为基本分析:最后一行一个星号,
         其他行数皆为两个星号,这两个星号的位置都在等腰三角形行的首尾位置,中间都是空格,
         分析星号的位置规律(这边分析的位置为等腰三角形,包括中间空格,不包括右边空格):
             行    位置        位置        输入行数
             1    第1个        第5个        4
             2    第1个        第3个        4
             3    第1个                 4
             推出:星号的位置与输入行数与当前行数的关系:1或(输入行数-当前行数)*2-1,中间的输出空格
         */
         
         for(int i = 1;i <= sum-1;i++) {
             for(int j = 1;j <= i;j++) {
                 System.out.print(" ");
             }
             for(int j = 1;j <= 2*(sum-i)-1;j++) {
                 if(j == 1 || j == 2*(sum-i)-1) {
                     System.out.print("*");
                 }else {
                     System.out.print(" ");
                 }  
             }
             System.out.println();
         }
        }
    }

    运行结果:

  • 相关阅读:
    原生ajax书写
    java 中的instanceof
    Leetcode-Python3
    快速读入挂
    HDU 6044 Limited Permutation(2017多校)【计数 快速读入挂 线性逆元】
    HDU 6015 Colorful Tree(2017多校)
    HDU 6034 【贪心】
    POJ 3415 Common Substrings 【长度不小于 K 的公共子串的个数】
    POJ Football Game 【NIMK博弈 && Bash 博弈】
    2018
  • 原文地址:https://www.cnblogs.com/Dean-0/p/11119244.html
Copyright © 2020-2023  润新知