金字塔图案

金字塔图案

问题描述

打印出等腰金字塔图形.

算法思路

  • 这种打印图形,核心就是按行打印 => 金字塔图形每一行有空格星号组成
  • 找到行号n与空格和星号的数量规律

代码示例

Python

# 这种打印的就是按行打印

def fun(n):
    """
    :param n: 金字塔的层数
    """
    for line in range(1, n + 1):
        # 打印空格
        for i in range(n - line):
            print(" ", end="")
        # 打印星号
        for i in range(2*line -1):
            print("*",end="")
        print()

fun(5)

Java



import java.util.Scanner;

public class 金字塔图案 {

    // print1(n) => 正三角
    static void print1(int n) {
        // 按行来打印
        for (int i = 1; i <= n; i++) { // 第i行
            // 打印空格
            for (int j = 0; j < n - i; j++) {
                System.out.printf(" ");
            }
            // 打印星号
            for (int j = 0; j < 2 * i - 1; j++) {
                System.out.printf("*");
            }
            System.out.println();
        }
    }

    // print2(n) => 倒三角
    static void print2(int n) {
        // 按行打印
        for (int i = 1; i <= n; i++) {
            // 打印空格
            int nn = i - 1;
            while (nn-- > 0) {
                System.out.printf(" ");
            }
            // 打印星号
            nn = 2 * (n - i) + 1;
            while (nn-- > 0) {
                System.out.printf("*");
            }
            System.out.println();
        }
    }

    public static void main(String[] args) {
        // 1. 找到行数n和空格,星号的关系

        Scanner sc = new Scanner(System.in);
        System.out.println("请输入金字塔层数: ");
        int n = sc.nextInt(); // n => 层数

        print1(n);
        System.out.println();
        print2(n);
    }

}

猜你喜欢

转载自www.cnblogs.com/Rowry/p/11823832.html