Shape Rule
Wide first, letters forward
Row 1 prints AAAAA, then BBBB, down to a single E.

Row width shrinks from five to one, but the letter moves forward each row: AAAAA, BBBB, CCC, DD, E. Compare with Program 11 (same shape, letters step down) and worked Java examples, live preview, edge cases, and complexity.
Wide first, letters forward
Row 1 prints AAAAA, then BBBB, down to a single E.
Letter advance
for (char i = 'A'; i <= 'E'; i++) picks the letter for each row.
Width 5…1
for (char j = 'E'; j >= i; j--) shrinks as i rises — print i, not j.
Same line / next line
Letters use print; end each row with println().
1–26 rows
Pick a row count and draw the inverted forward triangle in the browser.
Complexity
Total letters = n(n+1)/2; extra memory stays O(1).
An inverted forward repeating alphabet triangle starts wide and shrinks by one repeated letter on each new line, while letters advance from A toward the top of the range. With the right angle on the left, the console shows an upside-down staircase of identical letters per row.
In Java you usually solve it with two nested for loops: the outer loop picks the row letter (counting up), the inner loop prints that same letter fewer times each row, then System.out.println() moves to the next line.
It shows that letter direction and width direction are independent knobs. Flip only the outer loop (A→E vs E→A) and you move between Program 12 and Program 11 without rewriting the shape idea.
Top row repeats A exactly n times.
Rows go A, B, C, … while widths go n…1.
print(i) in the inner loop; println() after.
Same widths — opposite letter direction.
In short: for each letter i from A up to top, print i repeatedly (top - i + 1) times, then call System.out.println().
Given a positive integer rows (or a fixed top letter like 'E'), print a left-aligned inverted triangle where letters advance from A and widths shrink from rows down to 1.
// First 5 rows (conceptual shape)
// AAAAA
// BBBB
// CCC
// DD
// E | Item | Type | Description |
|---|---|---|
rows | int | Number of triangle lines (typically 1–26). Top letter = 'A' + rows - 1. |
| Printed output | text | Left-aligned rows; row r (0-based) prints letter 'A' + r exactly rows - r times. |
top = 'A' + rows - 1
for row from 0 to rows - 1:
ch = 'A' + row
repeat = rows - row
for k from 1 to repeat:
print ch (no newline)
print newline | Approach | Idea | Best for |
|---|---|---|
| Nested char loops | Outer A…top + inner top…i width | Learning and interviews |
String.valueOf(ch).repeat(repeat) | Build a whole row in one call | Shorter production-style demos |
| Goal | Pattern |
|---|---|
| Walk letters forward | for (char i = 'A'; i <= 'E'; i++) |
| Shrink repeat count | for (char j = 'E'; j >= i; j--) |
| Print row letter | System.out.print(i); — not j |
| End the row | System.out.println(); |
| One-line row shortcut | System.out.println(String.valueOf(ch).repeat(repeat)); |
| Letters step down | See Program 11 (EEEEE, DDDD, …) |
Same triangle — different ways to emit characters.
same linePrints a letter without moving to the next line
new lineEnds the current row after all repeats are printed
whole rowBuilds n copies of ch at once — skip the inner loop
print iMaster printing the outer letter before the string shortcut
Reach for this triangle when practicing inverted widths with forward letters.
Keep shrinking widths; flip only the letter direction to A→E.
Letter direction and width direction can flip separately.
Practice ch = 'A' + row and repeat = rows - row.
Next: sequential letters that keep advancing across rows.
This is a console teaching pattern — not how you build modern app screens.
Key benefit: one small program that proves letter direction is independent of inverted width — a core alphabet-pattern skill.
Choose a row count between 1 and 26 and draw the inverted forward repeating alphabet triangle in the browser.
Three complete Java programs — fixed top letter, console input, and a String.repeat shortcut. Click View Output to reveal sample console results.
Print five inverted forward rows with classic nested char loops.
'A' up to 'E'Hard-coded range — ideal for first demos and screenshots.
public class InvertedForward {
public static void main(String[] args) {
for (char i = 'A'; i <= 'E'; i++) {
for (char j = 'E'; j >= i; j--) {
System.out.print(i);
}
System.out.println();
}
}
} When i = 'A', the inner loop runs from E down to A (5 times) and prints A. When i = 'B', it prints BBBB, and so on until a single E. Printing i (not j) keeps each row uniform.
Let the user choose the height at runtime.
Use row index: ch = 'A' + row and repeat = rows - row. Check hasNextInt() in real apps.
import java.util.Scanner;
public class InvertedForwardInput {
public static void main(String[] args) {
int rows;
Scanner sc = new Scanner(System.in);
System.out.print("Enter the number of rows: ");
rows = sc.nextInt();
char top = (char)('A' + rows - 1);
for (int row = 0; row < rows; row++) {
char ch = (char)('A' + row);
int repeat = rows - row;
for (int k = 1; k <= repeat; k++) {
System.out.print(ch);
}
System.out.println();
}
sc.close();
}
} For rows = 4, row 0 prints A four times, row 1 prints B three times, and so on. Clamp rows to 1–26 so letters stay within A–Z. (top is shown for clarity; the index formula does the real work.)
Same shape without an explicit inner print loop.
String.valueOf(ch).repeat(repeat)Build each repeated-letter row in one call, then print it.
public class InvertedForwardString {
public static void main(String[] args) {
int rows = 5;
for (int row = 0; row < rows; row++) {
char ch = (char)('A' + row);
int repeat = rows - row;
System.out.println(String.valueOf(ch).repeat(repeat));
}
}
} String.valueOf(ch).repeat(repeat) creates a string of length repeat filled with ch. Great once you understand the nested-loop idea; keep the two-loop version for exams that ask you to show both bounds.
Import java.util.Scanner when reading input. Fix the top letter or compute it from rows.
for (char i = 'A'; i <= 'E'; i++) selects the character printed on the row.
for (char j = 'E'; j >= i; j--) runs 5, 4, 3… times; print i with System.out.print(i).
System.out.println() ends the row so the next outer iteration starts fresh.
Total letters: n+(n-1)+…+1 = n(n+1)/2 — O(n²) time, O(1) extra memory.
'A' up to 'E'Trace each outer-loop value of i and count how many times the inner loop runs.
i | Inner j range | Printed row | Repeats |
|---|---|---|---|
'A' | 'E'..'A' | AAAAA | 5 |
'B' | 'E'..'B' | BBBB | 4 |
'C' | 'E'..'C' | CCC | 3 |
'D' | 'E'..'D' | DD | 2 |
'E' | 'E'..'E' | E | 1 |
Total letter prints: 5 + 4 + 3 + 2 + 1 = 15 = 5×6/2.
Where this tiny pattern (and its loop structure) shows up beyond the homework prompt.
Clearest demo that forward letters can pair with shrinking widths.
Example: swap only the outer loop direction to get Program 11.
Teach letter direction as a one-line change.
Example: side-by-side EEEEE/DDDD vs AAAAA/BBBB.
Practice 'A' + row and rows - row without char countdown tricks.
Example: row 2 → letter C, repeat = n-2.
Swap to lowercase or mix digits once the loops work.
Example: start from 'a' + row.
Descending triangular totals still make O(n²) concrete.
Example: 5+4+…+1 = 15 for n = 5.
Pair the pattern with hasNextInt() and 1–26 clamps.
Example: reject rows <= 0 or rows > 26.
Pro Tip: say “letters go up, width goes down” before coding — that story prevents mixing Program 11’s countdown letter with this page.
Why this pattern earns a spot right after the inverted countdown triangle.
Wrong letter direction shows up immediately as EEEEE instead of AAAAA.
Only loops, chars, and console output — no arrays required.
Flip to Program 11 by counting letters downward instead.
Streaming output needs no storage beyond loop counters.
Pro Tip: learn the nested-loop version first; treat String.valueOf(ch).repeat(repeat) as a polish shortcut afterward.
Small habits that keep alphabet-pattern code clean.
Use ch = 'A' + row and repeat = rows - row — clearer than overloaded char bounds alone.
hasNextInt()Avoid crashes when the user types letters instead of a number.
Only call println() after the inner loop finishes the row.
For A–Z demos, reject or clamp rows > 26.
Trace rows = 3 (AAA, BB, C) on paper before coding larger demos.
Pro Tip: if you get EEEEE, DDDD, CCC instead of AAAAA, BBBB, CCC, you reused Program 11’s countdown outer loop.
Mistakes that commonly break inverted forward repeating alphabet patterns.
j Instead of iRows become countdown sequences instead of repeated letters.
→ Always System.out.print(i) (or ch) for this shape.
Counting i from top down to A prints EEEEE first instead of AAAAA.
→ Keep i (or row) advancing from A upward.
Each letter lands on its own line — you get a column, not a triangle.
→ Use print for letters; println only after the inner loop.
Letters or empty input throw InputMismatchException.
→ Check hasNextInt() and re-prompt on failure.
'A' + rows - 1 can leave the A–Z range.
→ Clamp to 26 or define wrap/error behavior explicitly.
Check these inputs before calling the solution done.
Output is just A on one line.
Treat as invalid; re-prompt instead of silent empty output.
rows < 0Invalid height — validate before looping.
Clamp or error — char math leaves A–Z.
nextInt() throws — check hasNextInt().
Same loops work with 'a' + row.
Try these variations to lock in the pattern.
hasNextInt() until 1 <= rows <= 26'a' + row as the row lettern(n+1)/2 — hence O(n²) time.1 <= rows <= 26 for interactive A–Z programs.Quick Takeaway: outer loop advances the letter (A→top), inner loop shrinks the width, then break the line — that is the whole pattern.
| Program | Time | Extra space |
|---|---|---|
| Nested loops (Examples 1–2) | O(rows²) | O(1) |
String.valueOf(ch).repeat(repeat) (Example 3) | O(rows²) | O(rows) per row string (temporary) |
The inverted forward repeating alphabet triangle is a small nested-loop exercise with lasting payoff: forward letters vs shrinking width, and O(n²) intuition. Master the classic two-loop version, then optionally shorten rows with String.valueOf(ch).repeat(repeat).
Practice the three examples above, then compare with Program 11 or continue to Program 13’s sequential letters.
Print the outer letter with print, end rows with println, and use repeat = rows - row (not Program 11’s countdown letter) for this shape.
System.out.print for letters and println after each row1 <= rows <= 26 for interactive programshasNextInt() before calling nextInt()println inside the inner letter looprows > 26 without a clear policyPrint the inverted forward repeating triangle the beginner-friendly way.
Letters up, width down
DefinitionAdvances A→top
CodeShrinks with print(i)
CodeEnds each row
I/OO(n²) time
AnalysisThis is the forward-letter twin of Program 11: same inverted widths (5…1), but letters advance A→E instead of stepping down. Print the outer loop letter inside the inner loop so each row stays uniform.
Next up: sequential letters that keep advancing across the whole triangle.
12 people found this page helpful