Print triangle using "*", numbers, and characters
We shall employ two nested loops with iterable variables like I and j in order to print a triangle pattern programme in C++. The following is the complete reasoning for printing a triangle using x, where x can be a letter, number, or *:
- Take input from the user of the number of rows in the triangle. Let it be rows.
- Iterate for i=0 to i=rows-1 and do :
- Iterate for j=0 to j=rows and print x + space each time i.e cout << x << " ";
- Terminate the current line, i.e. cout << endl;
When we put the aforementioned logic into practice, the inner loop will print x once in the first row, twice in the second row, and so forth.
Tips: The first for loop simply needs to be changed so that we iterate from i=rows – 1 to i=0 in order to output the inverted triangle, and we are good to go.
Code 1: Printing half pyramid using *
To print a half pyramid/triangle using , we will replace the x with , and we are good to go.
Code Implementation
#include<bits/stdc++.h> using namespace std; int main(){ int rows; cin >> rows; for( int i = 0; i < rows; i++ ) { for( int j = 0; j <= i; j++ ){ cout << "* "; } cout<<endl; } return 0; }
Output
*
* *
* * *
* * * *
* * * * *
* * * * * *
Code 2: Printing half pyramid using numbers
Again to print a pyramid of numbers, we need to replace x with i+1, where i+1 denotes the row number. Here it is i+1 because we are starting i from 0.
Code Implementation
#include<bits/stdc++.h> using namespace std; int main(){ int rows; cin >> rows; for( int i = 0; i < rows; i++ ) { for( int j = 0; j <= i; j++ ){ cout << i + 1 << " "; } cout<<endl; } return 0; }
Output
1
2 2
3 3 3
4 4 4 4
5 5 5 5 5
6 6 6 6 6 6
Code 3: Printing half pyramid using Alphabets
Similarly, we will replace the x with the desired alphabets to print a pyramid of alphabets.
Code Implementation
#include<bits/stdc++.h> using namespace std; int main(){ int rows; cin >> rows; for( int i = 0; i < rows; i++ ) { for( int j = 0; j <= i; j++ ){ cout << (char)('A' + j) << " "; } cout<<endl; } return 0; }
Output
A
A B
A B C
A B C D
A B C D E
A B C D E F
Printing rectangle pattern
Coding a rectangle pattern program in C++ is similar to printing a matrix of dimensions n×m.
The logic is as follows :
- Consider the dimensions (rows and columns) of the rectangle as input. Allow for rows and columns.
- Run the following code in iterations from i=0 to i=rows:
- Iterate from j=0 to j=cols and print x + space each time i.ei.e cout << x << " ";
- Terminate the current line, i.e. cout << endl;
Code Implementation to print rectangle in C
#include<bits/stdc++.h> using namespace std; int main(){ int rows, cols; cin >> rows; cin >> cols; for( int i = 0; i < rows; i++ ) { for( int j = 0; j < cols; j++ ){ cout << "* "; } cout<<endl; } return 0; }
Output
* * * * * *
* * * * * *
* * * * * *
* * * * * *
Printing Hollow Rectangle Pattern
The process to code the hollow rectangle pattern program in C++ is almost the same as printing a normal rectangle with the only difference that while printing a hollow rectangle, we need to take care of printing empty spaces for non-border cells.
The logic is as follows :
- Take the input of rows and columns (dimensions) of the rectangle. Let them be rows and cols.
- Iterate from i=0 to i=rows and do the following :
- Iterate from j=0 to j=cols and do the following :
- If current is the border cell of a rectangle i.e.i.e. i = 0 OR i = rows – 1 OR j = 0 OR j = cols – 1 print * + space.
- Otherwise, print blank space.
Code Implementation for Printing Hollow Rectangle Pattern
#include<bits/stdc++.h> using namespace std; int main() { int rows, cols; cin >> rows; cin >> cols; for (int i = 0; i < rows; i++) { for (int j = 0; j < cols; j++) { if (i == 0 || i == rows - 1 || j == 0 || j == cols - 1) cout << "* "; else cout << " "; } cout << endl; } return 0; }
Output
* * * * * *
* *
* *
* * * * * *
Floyd’s triangle
In Floyd’s triangle, we need to print numbers, but it is also required to increase the number by 1 each time we print it. Floyd’s Triangle is similar to the half triangle using numbers, with the only difference being that in Floyd’s triangle, we need to maintain a counter which will be incremented by one each time it is printed.
The logic is as follows :
- Take input from the user of the number of rows in the triangle. Let it be rows.
- Define a variable, say counter and initialize its value to 0.
- Iterate for i=0 to i=rows-1 and do :
- Iterate for j=0 to j=rows and do the following :
- Print count + space each time i.e. cout << count << " ";
- Increase the value of count by 1 i.e. count++.
- Terminate the current line, i.e. cout << endl;
Code Implementation for Floyd Triangle
#include<bits/stdc++.h> using namespace std; int main(){ int rows; cin >> rows; int counter = 1; for( int i = 0; i < rows; i++ ) { for( int j = 0; j <= i; j++ ){ cout << (counter++) << " "; } cout << endl; } return 0; }
Output
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
Butterfly Pattern
To easily print the butterfly pattern in C++, we will split our code into two parts, i.e., print the upper part in the first go and then the second part.
The logic is as follows :
- Take input from the user of the number of rows in the Butterfly pattern. Let it be rows.
- Iterate from i=0 to i=rows-1 and do the following –
- Iterate from j=0 to j=i and print + Blank space i.e.i.e. cout << "" << " ";
- Define a variable to find the number of spaces needed to be printed; say it to be spacespace.
- Initialize its value to be 2×(rows−i).
- Iterate from j=0 to j=spaces−1 and print blank spaces.
- Iterate from j=0 to j=i and print + Blank space i.e. cout << "" << " ";
- Terminate the line, i.e.i.e. count << endl;
- Repeat the above-given steps, but this time Iterate from i=rows−1 to i=0. This will print the lower part, as we have already printed the upper part.
Code Implementation for Butterfly Pattern
#include<bits/stdc++.h> using namespace std; int main(){ int rows; cin >> rows; for( int i = 0; i <= rows; i++ ){ for( int j = 0; j <= i; j++ ){ cout << "* "; } int spaces = 2 * (rows - i); for( int j = 0; j < spaces; j++){ cout << " "; } for( int j = 0; j <= i; j++ ){ cout << "* "; } cout << endl; } for( int i = rows - 1; i >= 0; i-- ){ for( int j = 0; j <= i; j++ ){ cout << "* "; } int spaces = 2 * (rows - i); for( int j = 0; j < spaces; j++){ cout << " "; } for( int j = 0; j <= i; j++ ){ cout << "* "; } cout << endl; } return 0; }
Output
* *
* * * *
* * * * * *
* * * * * * * *
* * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * * * * * *
* * * * * * * * * * * *
* * * * * * * * * *
* * * * * * * *
* * * * * *
* * * *
* *
Full Pyramid
Printing the full pyramid is almost the same as printing the half pyramid. We need to print space before printing the *s.
The logic is as follows :
- Take input from the user of the number of rows in the triangle. Let it be rows.
- Iterate from i=0 to i=rows – 1 and do the following :
- Define a variable to find the number of spaces needed to be printed. Say it to be space.
- Initialize its value to be rows – i.
- Iterate from j=0 to j=space – 1 and print double spaces.
- Iterate from j=0 to j=2×i−1 and print *+space.
- Terminate the line i.e. cout << endl;
C Code Implementation for Full Pyramid
#include<bits/stdc++.h> using namespace std; int main(){ int rows; cin >> rows; for( int i = 0; i < rows; i++ ) { int spaces = rows - i; for( int j = 0; j < spaces; j++){ cout <<" "; } for( int j = 0; j < 2 * i - 1; j++){ cout <<"* "; } cout << endl; } return 0; }
Output
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
Conclusion
All kinds of patterns can be easily printed by correctly using nested for loops (or while/do-while loops). To make it easier, code can be split into two parts, just like in the Butterfly pattern. In some pattern programs in C++, we should take utmost care of blank spaces to make the pattern.
Other C++ Programs
C++ Program to Add Two Numbers
C++ Program to Reverse a Number
C++ program for heap sort
Bubble Sort in C++ with Program Code and Example
Hello world program in C++
Prime Number Program in C++
Factorial Program in C++
Binary Search Program in C++