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.