Bài toán
Tạo và in ma trận xoắn ốc n×n (số chẵn) theo chiều kim đồng hồ, chỉ dùng O(1) không gian phụ.
Ví dụ n=3
Output: 18 16 14 4 2 12 6 8 10

Công thức toán học
Xác định "layer" x = min(i, j, n-1-i, n-1-j)
- Nửa trên- phải (i ≤ j): value = 2×[(n-2x)² - (i-x) - (j-x)]
- Nửa dưới- trái (i > j): value = 2×[(n-2x-2)² + (i-x) + (j-x)]
Mã nguồn C
#include <stdio.h>
void spiralmatrix(int n) {
for (int i=0; i
Kết quả n=3
18 16 14
4 2 12
6 8 10