⚡ TL;DR
Print the spiral number matrix pattern in Dart. Complete working code, expected output, algorithm explanation, and practice variations for beginners learning loops.
The Spiral Number Matrix pattern is a classic loop exercise. Here’s the complete implementation in Dart with working code and output.
Pattern to Print
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9Implementation
void main() {
int n = 5;
List<List<int>> matrix = List.generate(n, (_) => List.filled(n, 0));
int num = 1, top = 0, bottom = n - 1, left = 0, right = n - 1;
while (top <= bottom && left <= right) {
for (int i = left; i <= right; i++) { matrix[top][i] = num++; }
top++;
for (int i = top; i <= bottom; i++) { matrix[i][right] = num++; }
right--;
if (top <= bottom) {
for (int i = right; i >= left; i--) { matrix[bottom][i] = num++; }
bottom--;
}
if (left <= right) {
for (int i = bottom; i >= top; i--) { matrix[i][left] = num++; }
left++;
}
}
for (var row in matrix) {
print(row.map((e) => e.toString().padLeft(3)).join(' '));
}
}Output
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9How It Works
Layer-by-layer approach: walk the outer ring clockwise (top → right → bottom → left), then shrink the boundaries and repeat for the inner rings.
Practice Variations
- Try printing the pattern with a different character (e.g.,
#or+) - Modify the code to accept the pattern size as user input
- Combine this pattern with its inverse to create a more complex shape
Complexity
- Time: O(n²) — the grid or line count grows quadratically
- Space: O(1) — only loop counters are needed
Related Patterns
- Spiral Number Matrix in Python
- Spiral Number Matrix in Go
- Spiral Number Matrix in Swift
- Floyd’s Triangle in Dart
- Pascal’s Triangle in Dart
- Palindromic Number Pyramid in Dart
FAQ
How do you print the Spiral Number Matrix pattern in Dart?
Use nested loops: the outer loop walks through the rows while the inner loop prints the characters or values for each row. The complete Dart implementation with expected output is shown in the sections above.
What is the time complexity of the Spiral Number Matrix pattern in Dart?
The time complexity is O(n²) and the space complexity is O(1), since the pattern is built with a fixed number of loop counters and printed row by row.
Happy coding!
