题解 | #蛇形矩阵#笨方法

蛇形矩阵

https://www.nowcoder.com/practice/649b210ef44446e3b1cd1be6fa4cab5e

package main

import (
    "fmt"
)

func main() {
    // 获取输入
    var num int
    fmt.Scan(&num)
    // 整个多维数组表示结果
    var res [][]int
    // 笨蛋方法计算出多维数组的每一行的第一个值
    // 这个步骤放在下面大循环里也行
    beginning:=[]int{1}
    for i:=1;i<num;i++{
        value:=beginning[i-1]+i
        beginning = append(beginning,value)
    }
    // 开一个for循环对数组进行填充
    // 一共是num次外层循环
    for i:=0;i<num;i++{
        var child []int
        // 内层循环则是产生每一行的具体结果
        for k:=0;k<num-i;k++{
            if k==0{
                // 第一个值我们从先前的beginning里面取
                child = append(child, beginning[i])
                // fmt.Println("a",child)
            }else{
                // 后面的值则符合“前一个值+k+1+i”的规律
                child = append(child, child[k-1]+k+1+i)
                // fmt.Println("b",child)
            }
        }
        // 得出一整行数字之后加入结果之中
        res = append(res, child)
        // fmt.Println(res)正确
    }
    // 遍历一下结果数组
    for i:=0;i<num;i++{
        for _,v:=range res[i]{
            fmt.Printf("%d ",v)
        }
        fmt.Print("\n")
    }
    }

全部评论

相关推荐

03-31 21:47
东南大学 C++
彭于晏前来求offe...:吓晕了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务