算法一一 打印几何图形

时间:2021-04-14 11:09:27

打印三角形 这里写代码片 public class Threads implements Runnable{
public static void main(String[] args) {

    //n 为行数 
    int n=5;
    start(4);
}
public static  void start(int n){
    //倒三角星 
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < i; j++) {
            System.out.print(" ");   //打印空白
        }
        for (int k = 0; k <2*(n-i)-1; k++) {
            System.out.print("*");   //打印星
        }
        System.out.println();        //换行
    }
    //正三角星
    for (int i = 0; i < n; i++) {
        for (int j = n-1; j >i; j--) {
            System.out.print(" ");    //打印空白
        }
        for (int k = 0; k <2*i+1; k++) {
            System.out.print("*");    //打印星
        }
        System.out.println();          //换行
    }

}

算法一一 打印几何图形
这里解释下思路:三角星里用了三层嵌套循环 ,我们想想下把三角形填满就是个正方向,需要做的是在这里按规则的填上星星
第一层 首先确定打印几行 n
第二层是“开始”打印空白 观察下三角形空白 第一层是0 个 第二层是2个 第三层是4个 第4层是 6个
让后你发现只需要左边空白 每一层的星星都会减少 右边的空白可以忽略 就发现 1到4层的 空白就是 每一层的层数
第三层就是开始计算每一层的星星 我们发现每一层的星星都是奇数 那么就是 2n-1
往下就是每层减少2个 就是 2*i

       0 1 2 3        循环次数
       7 5 3 1        每一层星星
       2n-2i-1    一一2(n-i)*2 就是星星的公式
   这样三层嵌套下来  倒三角星就出来了

正三角星 就是每层星星增加两个 2*i+1
空白 就是递减 n-1 –
下面介绍 菱形打印

这里写代码片
for(int t=0;t<100;t++){    //循环100次
        for (int i = 0; i < n; i++) {   \\菱形右边斜
            for (int j = 0; j < i; j++) {
                System.out.print(" ");    \\空白 
            }
            for (int j = 0; j <n; j++) {
                System.out.print("*");     \\星星
            }
            System.out.println();
        }
        for (int i = 0; i <n; i++) {    \\菱形左边斜
            for (int j = n-1; j >i; j--) {  
                System.out.print(" ");    \\空白 出每层递减
            }
            for (int j = 0; j <n; j++) {
                System.out.print("*");   \\星星
            }
            System.out.println();
         }
        }

算法一一 打印几何图形
三层循环 和上面的类似 这里每一层的星星是固定的 不变 变化的只是每一层的空白