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 program to print a pattern using only // one loop. <iomanip> is header file for stfill() // and setw() #include<iostream> #include<iomanip> 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;
} |
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
}
} |
#Python equivalent #include <iostream> is replaced by print() function #include <iomanip> 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# 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);
} } |
// 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.