Pattern printing problems are a common type of problem in programming that help you understand loops and control structures better. In this tutorial, we will explore how to solve a specific pattern printing problem both in C++ and Python.
Problem Statement:
You are given a number n
. You need to print a specific pattern for the given value of n
.
Examples:
For n = 2
:
2 2 1 1 $2 1 $
For n = 3
:
3 3 3 2 2 2 1 1 1 $3 3 2 2 1 1 $3 2 1 $
The pattern is composed of multiple lines, each with numbers decreasing from n
to 1
, repeated n
times on the first line, n-1
times on the second line, and so on, until the last line prints each number once. Each line is followed by a $
.
Solution Approach:
To solve this problem, we need to understand the nested loop structure. We use:
- An outer loop to handle the number of lines.
- An inner loop to handle the repetition and printing of numbers for each line.
Steps to Solve:
- Loop from
i = n
to1
. - For each value of
i
, loop fromj = n
to1
. - Print the value
j
repeatedi
times. - After completing the inner loop for each line, print a
$
.
Implementation in C++:
#include <iostream>
using namespace std;
void printPattern(int n) {
for (int i = n; i >= 1; i--) {
for (int j = n; j >= 1; j--) {
for (int k = 0; k < i; k++) {
cout << j << " ";
}
}
cout << "$";
}
cout << endl; // For the end of the total output
}
int main() {
int n;
cin >> n;
printPattern(n);
return 0;
}
Implementation in Python:
def print_pattern(n):
for i in range(n, 0, -1):
for j in range(n, 0, -1):
for _ in range(i):
print(j, end=" ")
print("$", end="")
print() # For the end of the total output
# Input reading
n = int(input())
print_pattern(n)
Explanation:
- Outer Loop (
for i in range(n, 0, -1)
):- Runs from
n
down to1
. - Controls the number of repetitions for each number in the pattern.
- Runs from
- First Inner Loop (
for j in range(n, 0, -1)
):- Runs from
n
down to1
. - Controls which number is being printed.
- Runs from
- Second Inner Loop (
for _ in range(i)
):- Runs
i
times. - Ensures that the current number
j
is printedi
times.
- Runs
- Print and End Line (
print("$", end="")
):- After finishing printing for one line, print
$
without a newline. - At the end, print a newline for clean output formatting.
- After finishing printing for one line, print
Conclusion:
Pattern printing is a valuable exercise for understanding nested loops and control flow. By following this tutorial, you should be able to handle similar problems with ease. The provided solutions in C++ and Python demonstrate how to effectively manage loops to achieve the desired pattern.