Nested Loop Practice Part 2
Nested Loop Practice Part 2
text
╔════════════════════════════════════════════════════════════════╗
║ UNIVERSAL PATTERN FORMULA (Remember This Forever!) ║
║ ║
║ Every Pattern = ROWS × (SPACES + SYMBOLS) ║
║ ║
║ for(row = 1; row <= n; row++) ← Controls HEIGHT ║
║ { ║
║ for(space = 1; space <= ?; space++) ← Controls GAPS ║
║ printf(" "); ║
║ for(col = 1; col <= ?; col++) ← Controls WIDTH ║
║ printf("*"); ║
║ printf("\n"); ← New Line ║
║ } ║
╚════════════════════════════════════════════════════════════════╝
FORMULAS:
- Increasing stars: j <= i
- Decreasing stars: j <= n-i+1
- Pyramid stars: j <= 2*i-1
- Inverted pyramid stars: j <= 2*(n-i)+1
- Leading spaces for pyramid: n-i
int main() {
int n = 5;
return 0;
}
Output:
text
* * * * *
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
*
*
*
*
*
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
Visual Understanding:
text
i=1: j runs 1→5 → prints 5 stars → \n
i=2: j runs 1→5 → prints 5 stars → \n
i=3: j runs 1→5 → prints 5 stars → \n
i=4: j runs 1→5 → prints 5 stars → \n
i=5: j runs 1→5 → prints 5 stars → \n
int main() {
int n = 5;
return 0;
}
Output:
text
*
* *
* * *
* * * *
* * * * *
Row-by-Row Analysis:
text
Row 1 (i=1): j runs 1 to 1 → 1 star
Row 2 (i=2): j runs 1 to 2 → 2 stars
Row 3 (i=3): j runs 1 to 3 → 3 stars
Row 4 (i=4): j runs 1 to 4 → 4 stars
Row 5 (i=5): j runs 1 to 5 → 5 stars
C
#include <stdio.h>
int main() {
int n = 5;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n-i+1; j++) {
printf("* ");
}
printf("\n");
}
return 0;
}
Output:
text
* * * * *
* * * *
* * *
* *
*
Formula Breakdown:
text
Row 1: n-i+1 = 5-1+1 = 5 stars
Row 2: n-i+1 = 5-2+1 = 4 stars
Row 3: n-i+1 = 5-3+1 = 3 stars
Row 4: n-i+1 = 5-4+1 = 2 stars
Row 5: n-i+1 = 5-5+1 = 1 star
C
#include <stdio.h>
int main() {
int n = 5;
Output:
text
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
C
#include <stdio.h>
int main() {
int n = 5;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= i; j++) {
printf("%d ", i); // Print row number
}
printf("\n");
}
return 0;
}
Output:
text
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
int main() {
int n = 5;
return 0;
}
Output:
text
A
A B
A B C
A B C D
A B C D E
ASCII Logic:
text
'A' = 65
'A' + 0 = 65 = 'A'
'A' + 1 = 66 = 'B'
'A' + 2 = 67 = 'C'
...and so on
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
A
B B
C C C
D D D D
E E E E E
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
🌟 PART 3: LEVEL 11-25 (Introducing Spaces)
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
*
* *
* * *
* * * *
* * * * *
Visual Formula:
text
Row 1: (5-1)=4 spaces, 1 star
Row 2: (5-2)=3 spaces, 2 stars
Row 3: (5-3)=2 spaces, 3 stars
Row 4: (5-4)=1 space, 4 stars
Row 5: (5-5)=0 spaces, 5 stars
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
* * * * *
* * * *
* * *
* *
*
LEVEL 13: Pyramid Pattern ⭐
THE MOST IMPORTANT PATTERN - MASTER THIS!
C
#include <stdio.h>
int main() {
int n = 5;
Output:
text
*
***
*****
*******
*********
Complete Analysis:
text
Row │ Spaces(n-i) │ Stars(2i-1) │ Total Width
────┼─────────────┼─────────────┼─────────────
1 │ 4 │ 1 │ 5
2 │ 3 │ 3 │ 6
3 │ 2 │ 5 │ 7
4 │ 1 │ 7 │ 8
5 │ 0 │ 9 │ 9
LEVEL 14: Inverted Pyramid
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
*********
*******
*****
***
*
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
1
121
12321
1234321
123454321
C
#include <stdio.h>
int main() {
int n = 5;
int num = 1; // Counter starts at 1
return 0;
}
Output:
text
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
1
0 1
1 0 1
0 1 0 1
1 0 1 0 1
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
* * * * *
* *
* *
* *
* * * * *
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
*
* *
* *
* *
* * * * *
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
*
* *
* *
* *
*********
int main() {
int n = 5;
// Lower half
for(int i = n-1; i >= 1; i--) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= 2*i-1; j++)
printf("*");
printf("\n");
}
return 0;
}
Output:
text
*
***
*****
*******
*********
*******
*****
***
*
C
#include <stdio.h>
int main() {
int n = 5;
// Upper half
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= 2*i-1; j++) {
if(j == 1 || j == 2*i-1)
printf("*");
else
printf(" ");
}
printf("\n");
}
// Lower half
for(int i = n-1; i >= 1; i--) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= 2*i-1; j++) {
if(j == 1 || j == 2*i-1)
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
Output:
text
*
* *
* *
* *
* *
* *
* *
* *
*
C
#include <stdio.h>
int main() {
int n = 5;
// Lower pyramid
for(int i = 2; i <= n; i++) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= 2*i-1; j++)
printf("*");
printf("\n");
}
return 0;
}
Output:
text
*********
*******
*****
***
*
***
*****
*******
*********
C
#include <stdio.h>
int main() {
int n = 5;
// Upper part
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= i; j++)
printf("*");
printf("\n");
}
// Lower part
for(int i = n-1; i >= 1; i--) {
for(int j = 1; j <= i; j++)
printf("*");
printf("\n");
}
return 0;
}
Output:
text
*
**
***
****
*****
****
***
**
*
C
#include <stdio.h>
int main() {
int n = 5;
// Upper part
for(int i = 1; i <= n; i++) {
for(int j = 1; j < i; j++)
printf(" ");
for(int j = i; j <= n; j++)
printf("*");
printf("\n");
}
// Lower part
for(int i = n-1; i >= 1; i--) {
for(int j = 1; j < i; j++)
printf(" ");
for(int j = i; j <= n; j++)
printf("*");
printf("\n");
}
return 0;
}
Output:
text
*****
****
***
**
*
**
***
****
*****
C
#include <stdio.h>
int main() {
int n = 5; // Should be odd
int mid = n / 2;
return 0;
}
Output:
text
*
*
*****
*
*
int main() {
int n = 5;
return 0;
}
Output:
text
* *
* *
*
* *
* *
C
#include <stdio.h>
int main() {
int n = 5;
// Upper half
for(int i = 1; i <= n; i++) {
// Left stars
for(int j = 1; j <= i; j++)
printf("*");
// Middle spaces
for(int j = 1; j <= 2*(n-i); j++)
printf(" ");
// Right stars
for(int j = 1; j <= i; j++)
printf("*");
printf("\n");
}
// Lower half
for(int i = n; i >= 1; i--) {
for(int j = 1; j <= i; j++)
printf("*");
for(int j = 1; j <= 2*(n-i); j++)
printf(" ");
for(int j = 1; j <= i; j++)
printf("*");
printf("\n");
}
return 0;
}
Output:
text
* *
** **
*** ***
**** ****
**********
**********
**** ****
*** ***
** **
* *
C
#include <stdio.h>
int main() {
int n = 5;
// Upper half
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= i; j++) {
if(j == 1 || j == i)
printf("*");
else
printf(" ");
}
for(int j = 1; j <= 2*(n-i); j++)
printf(" ");
for(int j = 1; j <= i; j++) {
if(j == 1 || j == i)
printf("*");
else
printf(" ");
}
printf("\n");
}
// Lower half
for(int i = n; i >= 1; i--) {
for(int j = 1; j <= i; j++) {
if(j == 1 || j == i)
printf("*");
else
printf(" ");
}
for(int j = 1; j <= 2*(n-i); j++)
printf(" ");
for(int j = 1; j <= i; j++) {
if(j == 1 || j == i)
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
Output:
text
* *
** **
* * * *
* * * *
* ** *
* ** *
* * * *
* * * *
** **
* *
C
#include <stdio.h>
int main() {
int n = 5;
Output:
text
*****
*****
*****
*****
*****
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
*****
*****
*****
*****
*****
int main() {
int n = 9;
return 0;
}
Output:
text
* *
* * * *
* * *
C
#include <stdio.h>
int main() {
int n = 5;
// Upper half
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= i; j++)
printf("%d", j);
for(int j = i-1; j >= 1; j--)
printf("%d", j);
printf("\n");
}
// Lower half
for(int i = n-1; i >= 1; i--) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= i; j++)
printf("%d", j);
for(int j = i-1; j >= 1; j--)
printf("%d", j);
printf("\n");
}
return 0;
}
Output:
text
1
121
12321
1234321
123454321
1234321
12321
121
1
C
#include <stdio.h>
int main() {
int n = 5;
// Upper half
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= 2*i-1; j++)
printf("%c", 'A' + i - 1);
printf("\n");
}
// Lower half
for(int i = n-1; i >= 1; i--) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= 2*i-1; j++)
printf("%c", 'A' + i - 1);
printf("\n");
}
return 0;
}
Output:
text
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
DDDDDDD
CCCCC
BBB
A
LEVEL 36: Heart Pattern ❤️
C
#include <stdio.h>
int main() {
int n = 6;
return 0;
}
Output:
text
*** ***
***** *****
***********
*********
*******
*****
***
*
C
#include <stdio.h>
int main() {
int n = 5;
int a[10][10];
int num = 1;
int top = 0, bottom = n-1, left = 0, right = n-1;
// Right column
for(int i = top; i <= bottom; i++)
a[i][right] = num++;
right--;
// Bottom row
for(int i = right; i >= left; i--)
a[bottom][i] = num++;
bottom--;
// Left column
for(int i = bottom; i >= top; i--)
a[i][left] = num++;
left++;
}
// Print matrix
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++)
printf("%3d", a[i][j]);
printf("\n");
}
return 0;
}
Output:
text
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
1
121
12321
1234321
123454321
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
1
2 1 2
3 2 1 2 3
4 3 2 1 2 3 4
5 4 3 2 1 2 3 4 5
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
1 2 3 4 5
2 4 6 8 10
3 6 9 12 15
4 8 12 16 20
5 10 15 20 25
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
1
1 2
1 3
1 4
1 2 3 4 5
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
1
2 1 2
3 2 1 2 3
4 3 2 1 2 3 4
5 4 3 2 1 2 3 4 5
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
*
*#*
*#*#*
*#*#*#*
*#*#*#*#*
C
#include <stdio.h>
int main() {
int n = 5;
char ch = 'A';
return 0;
}
Output:
text
A
B C
D E F
G H I J
K L M N O
LEVEL 45: Reverse Alphabet Triangle
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
E
D D
C C C
B B B B
A A A A A
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
*****
* *
* *
* *
*****
C
#include <stdio.h>
int main() {
int n = 7; // Should be odd for symmetry
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n; j++) {
if(i == 1 || i == n || j == 1 || j == n ||
i == j || i + j == n + 1)
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
Output:
text
*******
** **
* * * *
* * *
* * * *
** **
*******
C
#include <stdio.h>
int main() {
int n = 5;
// Upper part
for(int i = 1; i <= n; i++) {
for(int j = 1; j < i; j++)
printf(" ");
for(int j = i; j <= n; j++)
printf("%d ", j);
printf("\n");
}
// Lower part
for(int i = n-1; i >= 1; i--) {
for(int j = 1; j < i; j++)
printf(" ");
for(int j = i; j <= n; j++)
printf("%d ", j);
printf("\n");
}
return 0;
}
Output:
text
1 2 3 4 5
2 3 4 5
3 4 5
4 5
5
4 5
3 4 5
2 3 4 5
1 2 3 4 5
LEVEL 49: Crown Pattern
C
#include <stdio.h>
int main() {
int n = 5;
// Top peaks
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= 2*n+1; j++) {
if((j == 1 && i >= 1) || (j == n+1 && i >= 1) ||
(j == 2*n+1 && i >= 1)) {
if(i <= (n+1)/2 || i > n - (n+1)/2 ||
(j >= n - i + 2 && j <= n + i))
printf("*");
else
printf(" ");
}
else if(i == n)
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
C
#include <stdio.h>
int main() {
int n = 5;
if(i <= n)
dist = n - i;
else
dist = i - n;
return 0;
}
Output:
text
*********
**** ***
*** **
** *
*
** *
*** **
**** ***
*********
C
#include <stdio.h>
int main() {
int n = 5;
// Upper triangle
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= 2*n+2*i-1; j++) {
if(j == 1 || j == 2*i-1 || (i == n))
printf("*");
else
printf(" ");
}
printf("\n");
}
return 0;
}
int main() {
int n = 5;
int num = 1;
Output:
text
1
2 2
3 3
4 4
123454321
C
#include <stdio.h>
long factorial(int n) {
long fact = 1;
for(int i = 2; i <= n; i++)
fact *= i;
return fact;
}
int main() {
int n = 7;
printf("\n");
}
return 0;
}
Output:
text
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
C
#include <stdio.h>
int main() {
int n = 5;
int a = 0, b = 1, c;
return 0;
}
Output:
text
0
0 1
0 1 1
0 1 1 2
0 1 1 2 3
C
#include <stdio.h>
int isPrime(int n) {
if(n < 2) return 0;
for(int i = 2; i * i <= n; i++)
if(n % i == 0) return 0;
return 1;
}
int main() {
int n = 5;
int num = 2;
return 0;
}
Output:
text
2
3 5
7 11 13
17 19 23 29
31 37 41 43 47
C
#include <stdio.h>
int main() {
int n = 5; // Must be odd
int magic[10][10] = {0};
int num = 1;
int i = 0, j = n/2;
int newi = (i - 1 + n) % n;
int newj = (j + 1) % n;
if(magic[newi][newj])
i = (i + 1) % n;
else {
i = newi;
j = newj;
}
}
return 0;
}
Output:
text
17 24 1 8 15
23 5 7 14 16
4 6 13 20 22
10 12 19 21 3
11 18 25 2 9
C
#include <stdio.h>
int main() {
int n = 50;
int sieve[51];
int cols = 10;
return 0;
}
LEVEL 58: Checkerboard Pattern
C
#include <stdio.h>
int main() {
int n = 8;
return 0;
}
int main() {
int n = 5;
return 0;
}
Output:
text
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
1 10 11 20 21
2 9 12 19 22
3 8 13 18 23
4 7 14 17 24
5 6 15 16 25
C
#include <stdio.h>
int main() {
int n = 5;
// Upper half
for(int i = 0; i < n; i++) {
for(int j = 0; j < i; j++)
printf(" ");
for(int j = i; j < n; j++)
printf("%d ", n-j);
printf("\n");
}
// Lower half
for(int i = n-2; i >= 0; i--) {
for(int j = 0; j < i; j++)
printf(" ");
for(int j = i; j < n; j++)
printf("%d ", n-j);
printf("\n");
}
return 0;
}
Output:
text
5 4 3 2 1
4 3 2 1
3 2 1
2 1
1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
C
#include <stdio.h>
int main() {
int n = 4;
// Upper half
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= i; j++)
printf("%d", j);
for(int j = 1; j <= 2*(n-i); j++)
printf(" ");
for(int j = i; j >= 1; j--)
printf("%d", j);
printf("\n");
}
// Lower half
for(int i = n; i >= 1; i--) {
for(int j = 1; j <= i; j++)
printf("%d", j);
for(int j = 1; j <= 2*(n-i); j++)
printf(" ");
for(int j = i; j >= 1; j--)
printf("%d", j);
printf("\n");
}
return 0;
}
Output:
text
1 1
12 21
123 321
12344321
12344321
123 321
12 21
1 1
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
1
1 B
1 B 3
1 B 3 D
1 B 3 D 5
int main() {
int n = 7; // Should be odd
int mid = n / 2;
return 0;
}
Output:
text
1
2
3
1 2 3 4 5 6 7
5
6
7
C
#include <stdio.h>
int main() {
int n = 5;
// Upper half
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= 2*i-1; j++) {
if(j == 1 || j == 2*i-1)
printf("%c", 'A' + i - 1);
else
printf(" ");
}
printf("\n");
}
// Lower half
for(int i = n-1; i >= 1; i--) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= 2*i-1; j++) {
if(j == 1 || j == 2*i-1)
printf("%c", 'A' + i - 1);
else
printf(" ");
}
printf("\n");
}
return 0;
}
Output:
text
A
B B
C C
D D
E E
D D
C C
B B
A
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
* *
** **
*** ***
**** ****
**********
**** ****
*** ***
** **
* *
C
#include <stdio.h>
int main() {
int n = 5;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n; j++) {
if(i == 1 || i == n || j == 1 || j == n)
printf("%d ", i * j);
else
printf(" ");
}
printf("\n");
}
return 0;
}
Output:
text
1 2 3 4 5
2 10
3 15
4 20
5 10 15 20 25
LEVEL 68: Spiral Matrix (Anti-clockwise)
C
#include <stdio.h>
int main() {
int n = 5;
int a[10][10];
int num = 1;
int layer = 0;
// Bottom row
for(int j = layer+1; j < n-layer && num <= n*n; j++)
a[n-layer-1][j] = num++;
// Right column
for(int i = n-layer-2; i >= layer && num <= n*n; i--)
a[i][n-layer-1] = num++;
// Top row
for(int j = n-layer-2; j > layer && num <= n*n; j--)
a[layer][j] = num++;
layer++;
}
return 0;
}
C
#include <stdio.h>
#include <math.h>
int main() {
int n = 11; // Should be odd
int r = n / 2;
return 0;
}
int main() {
int h = 9, w = 23;
int r = 3;
return 0;
}
C
#include <stdio.h>
#include <math.h>
int main() {
int levels = 4;
int width = (1 << levels) - 1; // 2^levels - 1
return 0;
}
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
*
* *
* * *
* * * *
* * * * *
*
*
*
*
*
C
#include <stdio.h>
int main() {
int n = 4; // Number of sections
int maxWidth = 2 * n + 2 * n - 1;
// Trunk
int trunkWidth = 3;
int trunkHeight = 2;
for(int i = 0; i < trunkHeight; i++) {
for(int j = 0; j < (maxWidth - trunkWidth) / 2; j++)
printf(" ");
for(int j = 0; j < trunkWidth; j++)
printf("*");
printf("\n");
}
return 0;
}
C
#include <stdio.h>
int main() {
int n = 4;
int a[10][10], b[10][10];
int num = 1;
// Initialize
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
a[i][j] = num++;
printf("Original:\n");
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++)
printf("%3d", a[i][j]);
printf("\n");
}
printf("\nRotated 90°:\n");
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++)
printf("%3d", b[i][j]);
printf("\n");
}
return 0;
}
C
#include <stdio.h>
int main() {
int n = 5;
int a[10][10];
int num = 1;
// Initialize
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
a[i][j] = num++;
// Store border
int border[100], idx = 0;
// Top row
for(int j = 0; j < n; j++) border[idx++] = a[0][j];
// Right column
for(int i = 1; i < n; i++) border[idx++] = a[i][n-1];
// Bottom row
for(int j = n-2; j >= 0; j--) border[idx++] = a[n-1][j];
// Left column
for(int i = n-2; i > 0; i--) border[idx++] = a[i][0];
// Put back
idx = 0;
for(int j = 0; j < n; j++) a[0][j] = border[idx++];
for(int i = 1; i < n; i++) a[i][n-1] = border[idx++];
for(int j = n-2; j >= 0; j--) a[n-1][j] = border[idx++];
for(int i = n-2; i > 0; i--) a[i][0] = border[idx++];
return 0;
}
C
#include <stdio.h>
int main() {
int n = 16; // Should be power of 2
for(int y = n-1; y >= 0; y--) {
for(int x = 0; x < y; x++)
printf(" ");
for(int x = 0; x + y < n; x++) {
if((x & y) != 0)
printf(" ");
else
printf("* ");
}
printf("\n");
}
return 0;
}
Output:
text
*
* *
* *
* * * *
* *
* * * *
* * * *
* * * * * * * *
* *
* * * *
* * * *
* * * * * * * *
* * * *
* * * * * * * *
* * * * * * * *
* * * * * * * * * * * * * * * *
C
#include <stdio.h>
#include <math.h>
int isPrime(int n) {
if(n < 2) return 0;
for(int i = 2; i <= sqrt(n); i++)
if(n % i == 0) return 0;
return 1;
}
int main() {
int n = 9;
int a[15][15] = {0};
int x = n/2, y = n/2;
int num = 1;
int dir = 0; // 0:right, 1:up, 2:left, 3:down
int steps = 1;
int dx[] = {1, 0, -1, 0};
int dy[] = {0, -1, 0, 1};
return 0;
}
C
#include <stdio.h>
int main() {
int n = 9; // Should be odd
int mid = n / 2;
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
int di = (i <= mid) ? i : n - 1 - i;
int dj = (j <= mid) ? j : n - 1 - j;
int dist = (di < dj) ? di : dj;
return 0;
}
C
#include <stdio.h>
int main() {
int n = 5;
// Top face
for(int i = 0; i < n; i++) {
for(int j = 0; j < n - i; j++)
printf(" ");
for(int j = 0; j < n; j++)
printf("/ ");
printf("\n");
}
// Side faces
for(int i = 0; i < n; i++) {
for(int j = 0; j < i; j++)
printf(" ");
printf("/ ");
for(int j = 0; j < n - 1; j++)
printf(" ");
printf("/ ");
for(int j = 0; j < n - 1; j++)
printf(" ");
printf("/\n");
}
return 0;
}
C
#include <stdio.h>
int main() {
int n = 7;
int fib[20] = {0, 1};
return 0;
}
C
#include <stdio.h>
int main() {
int n = 7;
int width = 2*n - 1;
// Upper triangle
for(int i = 0; i < n; i++) {
for(int j = 0; j < width; j++) {
int pos = j - (n - 1 - i);
if(pos >= 0 && pos <= 2*i) {
if(pos == 0 || pos == 2*i || i == n-1)
printf("*");
else
printf(" ");
} else {
printf(" ");
}
}
printf("\n");
}
return 0;
}
C
#include <stdio.h>
int main() {
int n = 9; // Should be odd
if(minDist % 2 == 0)
printf("* ");
else
printf(" ");
}
printf("\n");
}
return 0;
}
Output:
text
* * * * * * * * *
* *
* * * * * * * * *
* * * *
* * * * * * *
* * * *
* * * * * * * * *
* *
* * * * * * * * *
C
#include <stdio.h>
#include <stdlib.h>
int main() {
int n = 9;
int mid = n / 2;
return 0;
}
C
#include <stdio.h>
int main() {
int n = 5;
// Leading spaces
for(int j = 1; j <= n-i; j++)
printf(" ");
// Numbers
for(int j = 1; j <= i; j++) {
printf("%3d", j);
sum += j;
}
for(int j = i-1; j >= 1; j--) {
printf("%3d", j);
sum += j;
}
return 0;
}
Output:
text
1 = 1
1 2 1 = 4
1 2 3 2 1 = 9
1 2 3 4 3 2 1 = 16
1 2 3 4 5 4 3 2 1 = 25
C
#include <stdio.h>
void printRoman(int n) {
int values[] = {10, 9, 5, 4, 1};
char *symbols[] = {"X", "IX", "V", "IV", "I"};
int main() {
int n = 5;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= i; j++) {
printRoman(j);
printf(" ");
}
printf("\n");
}
return 0;
}
Output:
text
I
I II
I II III
I II III IV
I II III IV V
int main() {
int n = 5;
return 0;
}
Output:
text
00000
00000 00001
00000 00001 00010
00000 00001 00010 00011
00000 00001 00010 00011 00100
C
#include <stdio.h>
int main() {
int n = 4;
// Upper half
for(int i = 0; i < n; i++) {
for(int j = 0; j < n - 1 - i; j++)
printf(" ");
for(int j = 0; j < n + i; j++)
printf("* ");
printf("\n");
}
// Lower half
for(int i = n - 2; i >= 0; i--) {
for(int j = 0; j < n - 1 - i; j++)
printf(" ");
for(int j = 0; j < n + i; j++)
printf("* ");
printf("\n");
}
return 0;
}
Output:
text
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
C
#include <stdio.h>
int main() {
int n = 5;
char a[10][10];
char ch = 'A';
int top = 0, bottom = n-1, left = 0, right = n-1;
return 0;
}
Output:
text
A B C D E
P Q R S F
O X Y T G
N W V U H
M L K J I
C
#include <stdio.h>
#include <math.h>
int main() {
int width = 60;
int height = 15;
double amplitude = 5.0;
return 0;
}
C
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int n = 11; // Should be odd
int maze[15][15];
srand(time(0));
// Print maze
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++) {
if(maze[i][j])
printf("██");
else
printf(" ");
}
printf("\n");
}
return 0;
}
C
#include <stdio.h>
int main() {
int n = 9;
printf(" |");
for(int j = 1; j <= n; j++)
printf("%4d", j);
printf("\n---+");
for(int j = 1; j <= n; j++)
printf("----");
printf("\n");
return 0;
}
C
#include <stdio.h>
#include <stdlib.h>
int main() {
int n = 11; // Should be odd
int mid = n / 2;
int hollow = 2; // Hollow radius
return 0;
}
LEVEL 93: Number Avalanche
C
#include <stdio.h>
int main() {
int n = 5;
int num = 1;
// Upper part
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= i; j++) {
printf("%3d", num++);
}
printf("\n");
}
// Lower part
for(int i = n-1; i >= 1; i--) {
for(int j = 1; j <= n-i; j++)
printf(" ");
for(int j = 1; j <= i; j++) {
printf("%3d", num++);
}
printf("\n");
}
return 0;
}
Output:
text
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19
20 21 22
23 24
25
LEVEL 94: Catalan Triangle
C
#include <stdio.h>
int main() {
int n = 6;
C
#include <stdio.h>
int main() {
int n = 5;
return 0;
}
Output:
text
1 . . . 5
. 3 . 5 .
. . 5 . .
. 7 . 7 .
9 . . . 9
C
#include <stdio.h>
int main() {
int n = 5;
// Upper half
for(int i = 1; i <= n; i++) {
// Left wing
for(int j = 1; j <= i; j++)
printf("%d", j);
// Gap
for(int j = 1; j <= 2*(n-i); j++)
printf(" ");
// Right wing
for(int j = i; j >= 1; j--)
printf("%d", j);
printf("\n");
}
// Lower half
for(int i = n-1; i >= 1; i--) {
for(int j = 1; j <= i; j++)
printf("%d", j);
for(int j = 1; j <= 2*(n-i); j++)
printf(" ");
for(int j = i; j >= 1; j--)
printf("%d", j);
printf("\n");
}
return 0;
}
Output:
text
1 1
12 21
123 321
1234 4321
1234554321
1234 4321
123 321
12 21
1 1
C
#include <stdio.h>
int main() {
int n = 5;
// Upper part
for(int i = 0; i < n; i++) {
for(int j = 0; j < n - 1 - i; j++)
printf(" ");
printf("*");
for(int j = 0; j < n + 2*i - 1; j++) {
if(i == 0)
printf("*");
else
printf(" ");
}
if(i > 0)
printf("*");
printf("\n");
}
// Lower part
for(int i = n - 2; i >= 0; i--) {
for(int j = 0; j < n - 1 - i; j++)
printf(" ");
printf("*");
for(int j = 0; j < n + 2*i - 1; j++) {
if(i == 0)
printf("*");
else
printf(" ");
}
if(i > 0)
printf("*");
printf("\n");
}
return 0;
}
C
#include <stdio.h>
int main() {
int n = 7;
int a[15][15];
int layers = (n + 1) / 2;
return 0;
}
Output:
text
1 1 1 1 1 1 1
1 2 2 2 2 2 1
1 2 3 3 3 2 1
1 2 3 4 3 2 1
1 2 3 3 3 2 1
1 2 2 2 2 2 1
1 1 1 1 1 1 1
C
#include <stdio.h>
#include <stdlib.h>
int main() {
int n = 15; // Should be odd
int mid = n / 2;
int quarter = n / 4;
// Star shape
int cond1 = (i == mid); // Horizontal line
int cond2 = (j == mid); // Vertical line
int cond3 = (di == dj && di <= quarter); // Small X
int cond4 = (di + dj == mid); // Diamond edges
return 0;
}
int main() {
int n = 21; // Should be odd
int mid = n / 2;
// Cross pattern
int cross = (i == mid || j == mid);
// Diagonal pattern
int diag = (di == dj);
// Diamond
int diamond = (di + dj == mid);
// Inner square
int square = (di == mid/3 || dj == mid/3) &&
(di <= mid/3 && dj <= mid/3);
return 0;
}