Java Program to Print Right Triangle Number Pattern - 3
In this program we print a right triangle number pattern where every row ends with the largest number. The first row prints only 5, and each row after it starts one number lower.
Like every pattern program, it is built from nested loops: the outer loop picks the row, and the inner loops print what goes on that row.
1. The Pattern
For 5 rows the program prints:
Pattern
5 4 5 3 4 5 2 3 4 5 1 2 3 4 5
2. How the Program Works
Here is what each printed line is made of when numberOfRows is 5:
| Line | Leading spaces | Printed after the spaces |
|---|---|---|
| 1 | 0 | 5 |
| 2 | 0 | 4 5 |
| 3 | 0 | 3 4 5 |
| 4 | 0 | 2 3 4 5 |
| 5 | 0 | 1 2 3 4 5 |
- The outer loop runs once for each row, from 1 to
numberOfRows. - The inner loop runs
rowtimes. The valuenumberOfRows - row + columnstarts atnumberOfRows - row + 1and ends atnumberOfRows. System.out.println()moves to the next line after each row.
3. Java Program
public class Pattern3 {
public static void main(String[] args) {
int numberOfRows = 5;
// outer loop for the rows
for (int row = 1; row <= numberOfRows; row++) {
// inner loop to print the last row numbers, ending at numberOfRows
for (int column = 1; column <= row; column++) {
System.out.print((numberOfRows - row + column) + " ");
}
// move to the next line
System.out.println();
}
}
}
Output
5 4 5 3 4 5 2 3 4 5 1 2 3 4 5
4. Print the Pattern for Any Number of Rows
To let the user choose the size of the pattern, read the number of rows with a Scanner. The loops stay the same.
import java.util.Scanner;
public class Pattern3Input {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Enter the number of rows: ");
int numberOfRows = scanner.nextInt();
scanner.close();
// outer loop for the rows
for (int row = 1; row <= numberOfRows; row++) {
// inner loop to print the last row numbers, ending at numberOfRows
for (int column = 1; column <= row; column++) {
System.out.print((numberOfRows - row + column) + " ");
}
// move to the next line
System.out.println();
}
}
}
Output (with sample input)
Enter the number of rows: 6 6 5 6 4 5 6 3 4 5 6 2 3 4 5 6 1 2 3 4 5 6
5. Summary
- The outer loop picks the row; the inner loops print the spaces and the numbers for that row.
- Work out how many spaces and which numbers each row needs, then write one inner loop for each.
- Keep
numberOfRowsin a variable, so the same program can print the pattern in any size.
Related Programs
Was this tutorial helpful?