Given a number n, we need to print an X pattern of size n.
Input : n = 3
Output :
$ $
$
$ $
Input : n = 5
Output :
$ $
$ $
$
$ $
$ $
Input : n = 4
Output :
$ $
$$
$$
$ $
We need to print n rows and n columns. So we run two nested loops. The outer loop prints all rows one by one (runs for i = 1 to n). The inner loop (runs for j = 1 to n) runs all columns of current row. Now a row can contain spaces and ‘$’. How do we decide where to put space and where ‘$’. For i = 1 : First and last column should contain ‘$’ For i = 2 : Second and second last column should contain ‘$’ In general, i-th and (n + 1 – i)-th columns should contain ‘$’
// Program to make an X shape $ pattern in c++ #include <iostream> using namespace std;
void printPattern( int & n)
{ // Print all rows one by one
for ( int i = 1; i <= n; i++) {
// Print characters of current row
for ( int j = 1; j <= n; j++) {
// For i = 1, we print a '$' only in
// first and last columns
// For i = 2, we print a '$' only in
// second and second last columns
// In general, we print a '$' only in
// i-th and n+1-i th columns
if (j == i || j == (n + 1 - i))
cout << "$" ;
else
cout << " " ;
}
// Print a newline before printing the
// next row.
cout << endl;
}
} // Driver Code int main()
{ // n denotes the number of lines in which
// we want to make X pattern
int n = 6;
// Function Call
printPattern(n);
return 0;
} |
$ $ $ $ $$ $$ $ $ $ $
Time Complexity: O(n2), where n represents the given input.
Auxiliary Space: O(1), no extra space is required, so it is a constant.