Print pattern using only one loop | Set 1 (Using setw) (original) (raw)

Last Updated : 23 Jul, 2025

Print simple patterns like below using single line of code under loop.
**Examples:

**Input : 5
**Output :
*
**




**Input : 6
**Output :
*
**





**setw(n) Creates n columns and fills these n columns from right. We fill i of them with a given character, here we create a string with i asterisks using string constructor. **setfill() Used to set fill character in a stream. Here we use it to fill remaining n-i-1 places with space (or ' ') in n columns.

CPP `

// CPP program to print a pattern using only // one loop. is header file for stfill() // and setw() #include #include using namespace std;

void generatePattern(int n) { // Iterate for n lines for (int i=1 ; i<=n ; i++) cout << setfill(' ') << setw(n) << string(i, '*') << endl;

// Remove multi-line commenting characters below 
// to get PATTERN WITH CHARACTERS IN LEFT AND 
// SPACE IN RIGHT 
/* for (int i=1 ; i<=n ; i++) 
    cout << left << setfill(' ') 
        << setw(n) << string(i,'*') << endl; */

}

// Driver code int main() { int n = 6; generatePattern(n); return 0; }

Java

public class PatternPrinting { // Function to generate and print the pattern public static void generatePattern(int n) { for (int i = 1; i <= n; i++) { // Use printf to format the output with spaces on the left // and asterisks on the right, to create the pattern. System.out.printf("%" + n + "s%n", "*".repeat(i)); } }

public static void main(String[] args) {
    int n = 6; // Define the number of lines in the pattern
    generatePattern(n); // Call the pattern generation function
}

}

Python3

#Python equivalent #include is replaced by print() function #include is replaced by string.ljust()

def generatePattern(n): # Iterate for n lines for i in range(1, n+1): print(str('*'*i).rjust(n))

# Remove multi-line commenting characters below 
# to get PATTERN WITH CHARACTERS IN LEFT AND 
# SPACE IN RIGHT 
'''for i in range(1, n+1): 
    print(str('*'*i).ljust(n))'''

Driver code

if name == 'main': n = 6 generatePattern(n)

C#

// C# program to print a pattern using only // one loop. System namespace is used for Console // class. using System;

public class GFG { public static void GeneratePattern(int n) { // Iterate for n lines for (int i = 1; i <= n; i++) Console.WriteLine("{0," + n + "}", new String('', i)); // Remove multi-line commenting characters below // to get PATTERN WITH CHARACTERS IN LEFT AND // SPACE IN RIGHT / for (int i=1 ; i<=n ; i++) Console.WriteLine("{0,-" + n + "}", new String('*', i)); */ }

// Driver code public static void Main() { int n = 6; GeneratePattern(n); } }

JavaScript

// JS program to print a pattern using only // one loop. function generatePattern(n) {

// Iterate for n lines for (let i = 1; i <= n; i++) { console.log("*".repeat(i).padStart(n)); }

// Remove multi-line commenting characters below // to get PATTERN WITH CHARACTERS IN LEFT AND // SPACE IN RIGHT /* for (let i = 1; i <= n; i++) { console.log("*".repeat(i).padEnd(n)); } */ }

// Driver code const n = 6; generatePattern(n);

// This code is contributed by akashish__

`

**Output:

 *  
**  




**Time complexity: O(n2) for given input n
**Auxiliary space: O(1)

Please refer below post for one more approach. Print pattern using only one loop | Set 2 (Using Continue) This article is contributed by **Sakshi Tiwari. If you like GeeksforGeeks( We know you do! ) and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org.