Skip to content

Instantly share code, notes, and snippets.

@snowmerak
Created January 31, 2021 07:08
Show Gist options
  • Save snowmerak/0e4fbd71c1354799634fe88cdaf7da10 to your computer and use it in GitHub Desktop.
Save snowmerak/0e4fbd71c1354799634fe88cdaf7da10 to your computer and use it in GitHub Desktop.
rhombus
package main
import "fmt"
func main() {
n := 0
fmt.Scanf("%d\n", &n)
arr := make([][]int, n)
for i := 0; i < n; i++ {
arr[i] = make([]int, n)
}
cur := 1
x, y := 0, 0
for {
if n*n < cur {
break
}
for p, q := x, y; ; p, q = p-1, q+1 {
arr[p][q] = cur
cur++
if p == 0 {
if q == n-1 {
y++
break
}
x++
break
}
if q == n-1 {
y++
break
}
}
}
for i := 0; i < n; i++ {
for j := 0; j < n; j++ {
fmt.Printf("%3d ", arr[j][i])
}
fmt.Println()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment