Go编程语言中的Sierpinski三角形

package main

import (
	"fmt"
	"strings"
	"unicode/utf8"
)

func main() {
	var order = 4
	var star = "*"

	t := []string{star + strings.Repeat(" ", utf8.RuneCountInString(star))}
	for ; order > 0; order-- {
		sp := strings.Repeat(" ", utf8.RuneCountInString(t[0])/2)
		top := make([]string, len(t))
		for i, s := range t {
			top[i] = sp + s + sp
			t[i] += s
		}
		t = append(top, t...)
	}

	for _, r := range t {
		fmt.Println(r)
	}
}

               *
              * *
             *   *
            * * * *
           *       *
          * *     * *
         *   *   *   *
        * * * * * * * *
       *               *
      * *             * *
     *   *           *   *
    * * * *         * * * *
   *       *       *       *
  * *     * *     * *     * *
 *   *   *   *   *   *   *   *
* * * * * * * * * * * * * * * *

您必须阅读的解决方案

使用星号打印倒置的完整金字塔

程序使用星号打印整个金字塔

Go编程语言中的Pascal三角形

程序使用数字打印金字塔

Go编程语言中的Sierpinski地毯