Advertisement
bai_onzi

spiralMatrix.js

Apr 10th, 2023
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. let n = +gets();
  2. let matrix = [];
  3.  
  4. //създаваме си празна матрица
  5. for(let i = 0; i < n; i++){
  6.     matrix[i] = [];
  7. }
  8. // console.log(matrix);
  9.  
  10. // ┌─────────┬────┬────┬────┬────┬───┐
  11. // │ (index) │ 0  │ 1  │ 2  │ 3  │ 4 │
  12. // ├─────────┼────┼────┼────┼────┼───┤
  13. // │    0    │ 1  │ 2  │ 3  │ 4  │ 5 │
  14. // │    1    │ 16 │ 17 │ 18 │ 19 │ 6 │
  15. // │    2    │ 15 │ 24 │ 25 │ 20 │ 7 │
  16. // │    3    │ 14 │ 23 │ 22 │ 21 │ 8 │
  17. // │    4    │ 13 │ 12 │ 11 │ 10 │ 9 │
  18. // └─────────┴────┴────┴────┴────┴───┘
  19.  
  20. let counter = 1;
  21. let startCol = 0;
  22. let endCol = n - 1;
  23. let startRow = 0;
  24. let endRow = n - 1;
  25.  
  26. while(startCol <= endCol && startRow <= endRow){ //вървим надясно
  27.     for(let i = startCol; i <= endCol; i++){
  28.         matrix[startRow][i] = counter;
  29.         counter++;
  30.     }
  31.     startRow++;
  32.  
  33.     for(let i = startRow; i <=endRow; i++){ //вървим надолу
  34.         matrix[i][endCol] = counter;
  35.         counter++;
  36.     }
  37.     endCol--;
  38.  
  39.     for(let i = endCol; i >= startCol; i--){ //вървим наляво
  40.         matrix[endRow][i] = counter;
  41.         counter++;
  42.     }
  43.     endRow--
  44.  
  45.     for(let i = endRow; i >= startRow; i--){ //вървим нагоре
  46.         matrix[i][startCol] = counter;
  47.         counter++;
  48.     }
  49.     startCol++;
  50. }
  51.  
  52. for(let i = 0; i < n; i++){
  53.     let output = '';
  54.     output += matrix[i].join(' ');
  55.     console.log(output);
  56. }
  57. // console.log(matrix);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement