跳转至

打印杨辉三角

一、go语言实现

Go
package main

import "fmt"

func GetYangHuiTriangleNextLine(inArr []int) []int {
    var out []int
    var i int
    arrLen := len(inArr)
    out = append(out, 1)
    if 0 == arrLen {
        return out
    }
    for i = 0; i < arrLen-1; i++ {
        out = append(out, inArr[i]+inArr[i+1])
    }
    out = append(out, 1)
    return out
}

func main() {
    nums := []int{}
    var i int
    for i = 0; i < 10; i++ {
        nums = GetYangHuiTriangleNextLine(nums)
        fmt.Println(nums)
    }
}

输出结果:

Bash
[1]
[1 1]
[1 2 1]
[1 3 3 1]
[1 4 6 4 1]
[1 5 10 10 5 1]
[1 6 15 20 15 6 1]
[1 7 21 35 35 21 7 1]
[1 8 28 56 70 56 28 8 1]
[1 9 36 84 126 126 84 36 9 1]
Go
package main

import "fmt"

func triangle(n int) {
    var item []int
    for i := 1; i <= n; i++ {
        item_len := len(item)
        if item_len == 0 {
            item = append(item, 1)
        } else {
            temp_s := []int{1}
            for j := 0; j < item_len-1; j++ {
                temp_s = append(temp_s, item[j]+item[j+1])
            }
            temp_s = append(temp_s, 1)
            item = temp_s
        }
        fmt.Println(item)
    }
}

func main() {
    triangle(12)
}

输出结果:

Bash
[1]
[1 1]
[1 2 1]
[1 3 3 1]
[1 4 6 4 1]
[1 5 10 10 5 1]
[1 6 15 20 15 6 1]
[1 7 21 35 35 21 7 1]
[1 8 28 56 70 56 28 8 1]
[1 9 36 84 126 126 84 36 9 1]
[1 10 45 120 210 252 210 120 45 10 1]
[1 11 55 165 330 462 462 330 165 55 11 1]
Go
import "fmt"

func main() {
    yanghuisanjiao(12)
}

func yanghuisanjiao(rows int) {
    for i := 0; i < rows; i++ {
        number := 1
        for k := 0; k < rows-i; k++ {
            fmt.Print("  ")
        }
        for j := 0; j <= i; j++ {
            fmt.Printf("%5d", number)
            number = number * (i - j) / (j + 1)
        }
        fmt.Println()
    }
}

输出结果:

Bash
                            1
                        1    1
                        1    2    1
                    1    3    3    1
                    1    4    6    4    1
                1    5   10   10    5    1
                1    6   15   20   15    6    1
            1    7   21   35   35   21    7    1
            1    8   28   56   70   56   28    8    1
        1    9   36   84  126  126   84   36    9    1
        1   10   45  120  210  252  210  120   45   10    1
    1   11   55  165  330  462  462  330  165   55   11    1