题解 | #蛇形矩阵#

蛇形矩阵

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

package main
import (
	"fmt"
)

func main() {
	n := 0
	fmt.Scanln(&n)

	arrN := make([][]int, n)
	for i := 0; i < len(arrN); i++ {
		arrN[i] = make([]int, n)
	}

	sum := 1
	for i := 0; i < n; i++ {
		for j := 0; j <= i; j++ {
			arrN[i-j][j] = sum
			sum++
		}
	}

	//输出
	for i := 0; i < n; i++ {
		for j := 0; j < n-i; j++ {
			fmt.Printf("%d ", arrN[i][j])
		}
		fmt.Println()
	}
}

错误代码:

以下是使用Golang实现输出蛇形矩阵的代码:

package main
import "fmt"
func main() {
var n int
fmt.Scanln(&n)

matrix := make([][]int, n)
for i := 0; i < n; i++ {
    matrix[i] = make([]int, n-i)
}

num := 1
for i := 0; i < n; i++ {
    for j := 0; j < n-i; j++ {
        matrix[i][j] = num
        num++
    }
}

for i := 0; i < n; i++ {
    for j := 0; j < n-i; j++ {
        fmt.Printf("%d ", matrix[i][j])
    }
    fmt.Println()
}
}

你可以使用上述代码输出一个N行的蛇形矩阵。例如,当输入为5时,输出的蛇形矩阵为:

1 3 6 10 15

2 5 9 14

4 8 13

7 12

11

错误代码:

package main

import "fmt"

func main() {
    var n int
    fmt.Scanln(&n)

    matrix := make([][]int, n)
    for i := 0; i < n; i++ {
        matrix[i] = make([]int, n)
    }

    num := 1
    for i := 0; i < n; i++ {
        if i%2 == 0 {
            for j := 0; j < n; j++ {
                matrix[i][j] = num
                num++
            }
        } else {
            for j := n - 1; j >= 0; j-- {
                matrix[i][j] = num
                num++
            }
        }
    }

    for i := 0; i < n; i++ {
        for j := 0; j < n-i; j++ {
            fmt.Printf("%d ", matrix[i][j])
        }
        fmt.Println()
    }
}

全部评论

相关推荐

01-04 14:19
已编辑
重庆科技大学 Java
想和你交朋友的秋田犬...:唉 现在acm已经没那么吃香了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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