0
0
CsharpProgramBeginner · 2 min read

C# Program to Print Star Pattern

You can print a star pattern in C# using nested for loops; for example, for (int i = 1; i <= 5; i++) { for (int j = 1; j <= i; j++) { Console.Write("*"); } Console.WriteLine(); } prints a right-angled triangle of stars.
📋

Examples

Input5
Output* ** *** **** *****
Input3
Output* ** ***
Input1
Output*
🧠

How to Think About It

To print a star pattern, think of rows and columns. For each row, print stars equal to the row number. Use one loop to go through rows and a nested loop to print stars in each row.
📐

Algorithm

1
Get the number of rows to print.
2
Start a loop from 1 to the number of rows.
3
Inside this loop, start another loop from 1 to the current row number.
4
Print a star in the inner loop without moving to a new line.
5
After the inner loop ends, move to the next line.
6
Repeat until all rows are printed.
💻

Code

csharp
using System;
class Program {
    static void Main() {
        int rows = 5;
        for (int i = 1; i <= rows; i++) {
            for (int j = 1; j <= i; j++) {
                Console.Write("*");
            }
            Console.WriteLine();
        }
    }
}
Output
* ** *** **** *****
🔍

Dry Run

Let's trace the program with rows = 3 to see how stars print.

1

Start outer loop with i=1

Inner loop runs j=1 to 1, prints '*' once, then moves to new line.

2

Outer loop i=2

Inner loop runs j=1 to 2, prints '**', then moves to new line.

3

Outer loop i=3

Inner loop runs j=1 to 3, prints '***', then moves to new line.

i (row)j (star count)Output line
11*
22**
33***
💡

Why This Works

Step 1: Outer loop controls rows

The outer for loop runs from 1 to the number of rows, deciding how many lines to print.

Step 2: Inner loop prints stars

The inner for loop runs from 1 to the current row number, printing stars on the same line.

Step 3: Move to next line

After printing stars for a row, Console.WriteLine() moves the cursor to the next line for the next row.

🔄

Alternative Approaches

Using while loops
csharp
using System;
class Program {
    static void Main() {
        int rows = 5;
        int i = 1;
        while (i <= rows) {
            int j = 1;
            while (j <= i) {
                Console.Write("*");
                j++;
            }
            Console.WriteLine();
            i++;
        }
    }
}
This uses while loops instead of for loops; it works the same but is less concise.
Using string constructor
csharp
using System;
class Program {
    static void Main() {
        int rows = 5;
        for (int i = 1; i <= rows; i++) {
            Console.WriteLine(new string('*', i));
        }
    }
}
This uses <code>new string('*', i)</code> to create star strings directly, making code shorter and clearer.

Complexity: O(n^2) time, O(1) space

Time Complexity

The program uses nested loops where the outer loop runs n times and the inner loop runs up to n times, resulting in O(n^2) time.

Space Complexity

The program uses a fixed amount of extra space regardless of input size, so space complexity is O(1).

Which Approach is Fastest?

Using new string('*', i) is faster and cleaner than nested loops because it avoids manual printing inside loops.

ApproachTimeSpaceBest For
Nested for loopsO(n^2)O(1)Learning loops and control flow
While loopsO(n^2)O(1)Alternative loop syntax
String constructorO(n^2)O(1)Cleaner and concise code
💡
Use nested loops where the outer loop controls rows and the inner loop prints stars per row.
⚠️
Beginners often forget to move to the next line after printing stars, causing all stars to print on one line.