Python Program to print the pattern ‘G’
In this article, we will learn how to print the pattern G using stars and white-spaces. Given a number n, we will write a program to print the pattern G over n lines or rows.
Examples:
Input : 7 Output : *** * * * *** * * * * *** Input : 9 Output : ***** * * * * *** * * * * * * *****
In this program, we have used the simple logic of iteration over lines to create the pattern G. Please look at the image below which represents the pattern G in the form of a 2-d matrix, where mat[i][j] = ‘ij’:
If we try to analyze this picture with a (row, column) matrix and the circles represent the position of stars in the pattern G, we will learn the steps. Here we are performing the operations column-wise. So for the first line of stars, we set the first if condition, where the row position with 0 and (n-1) won’t get the stars and all other rows from 1 to (n-1), will get the stars. Similarly, for the second, third and fourth column we want stars at the position row = 0 and row = (n-1). The other steps are self-explanatory and can be understood from the position of rows and columns in the diagram.
Below is the implementation of above idea:
Python
# Python program to print pattern G def Pattern(line): pat = "" for i in range ( 0 ,line): for j in range ( 0 ,line): if ((j = = 1 and i ! = 0 and i ! = line - 1 ) or ((i = = 0 or i = = line - 1 ) and j > 1 and j < line - 2 ) or (i = = ((line - 1 ) / 2 ) and j > line - 5 and j < line - 1 ) or (j = = line - 2 and i ! = 0 and i ! = line - 1 and i > = ((line - 1 ) / 2 ))): pat = pat + "*" else : pat = pat + " " pat = pat + " " return pat # Driver Code line = 7 print (Pattern(line)) |
C++
// C++ program to print pattern G #include <bits/stdc++.h> using namespace std; string Pattern( int line){ string pat = "" ; for ( int i=0; i<line; i++){ for ( int j=0; j<line; j++){ if ((j == 1 and i != 0 and i != line-1) or ((i == 0 or i == line-1) and j > 1 and j < line-2) or (i == ((line-1)/2) and j > line-5 and j < line-1) or (j == line-2 and i != 0 and i != line-1 and i >=((line-1)/2))){ pat=pat+ "*" ; } else { pat = pat + " " ; } pat = pat + " " ; } } return pat; } // Driver Code int main() { int line = 7; cout<<Pattern(line); } //This code is contributed by Kunal Mali |
Output:
*** * * * *** * * * * ***
Time Complexity: O(n2), where n represents the given input.
Auxiliary Space: O(1), no extra space is required, so it is a constant.
Please refer complete article on Program to print the pattern ‘G’ for more details!
Please Login to comment...