MiniMi2022

SpiralMatrix

Feb 15th, 2022
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.94 KB | None | 0 0
  1. package main
  2.  
  3. import "fmt"
  4.  
  5. func main(){
  6.     var n int
  7.     fmt.Scanln(&n)
  8.     matrix := make([][]int, n)
  9.         for i := 0; i < n; i++ {
  10.         matrix[i] = make([]int, n)
  11.         }
  12.     var top int= 0
  13.     var down int= n - 1
  14.     var left int= 0
  15.     var right int= n - 1
  16.     var dir int= 0
  17.     var count int= 0
  18.    
  19.     for (top <= down && left <= right) {
  20.         if (dir == 0) {
  21.             for i := left; i <= right; i++ {
  22.                 count++
  23.                 matrix[top][i] = count
  24.             }
  25.             top++
  26.         } else if (dir == 1) {
  27.             for i := top; i <= down; i++ {
  28.                 count++
  29.                 matrix[i][right] = count
  30.             }
  31.             right--
  32.         } else if (dir == 2) {
  33.             for i := right; i >= left; i-- {
  34.                 count++
  35.                 matrix[down][i] = count
  36.             }
  37.             down--
  38.         } else if (dir == 3) {
  39.             for i :=  down; i >= top; i-- {
  40.                 count++
  41.                 matrix[i][left] = count
  42.             }
  43.             left++
  44.         }
  45.         dir = (dir + 1) % 4;
  46.     }
  47.     for i:=0;i<len(matrix);i++{
  48.         for j:=0;j<len(matrix[i]);j++{
  49.             fmt.Printf("%d ",matrix[i][j])
  50.         }
  51.     fmt.Println()
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment