You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编写print_mirrored_right_angle_reverse_pattern函数实现数字反向镜像直角三角形输出

Fixing the Mirrored Right-Angle Reverse Number Pattern

Let's break down your current code first—it generates a mirrored right-angle triangle where each row repeats the current row number. But since you need the numbers arranged in reverse order, we need to adjust how we generate the digits for each row.

What the Correct Output Could Look Like

Let's clarify two common interpretations of "reverse ordered numbers" for this pattern:

  1. Descending repeated digits: For input number_of_rows = 3, the output would be:
    3
     22
    111
    
  2. Descending sequence per row: For the same input, the output would show a reverse number sequence in each row:
    1
     21
    321
    

Let's cover both solutions so you can pick the one that matches your intended pattern.

Solution 1: Reverse the Digit Values (Repeating Descending Numbers)

Your original code uses the row index i (starting from 1) as the digit to print. To reverse this, we need to use number_of_rows - i + 1 instead—this gives us a descending value starting from the total number of rows down to 1.

Here's the corrected code:

def print_mirrored_right_angle_reverse_pattern(number_of_rows):
    for i in range(1, number_of_rows + 1):
        # Print leading spaces for mirror alignment
        print(" " * (number_of_rows - i), end='')
        # Print the reversed digit i times per row
        for j in range(i):
            print(number_of_rows - i + 1, end='')
        print()

Example Output for number_of_rows=4:

4
   33
  222
 1111

Solution 2: Reverse the Digit Sequence in Each Row

If you want each row to display a descending sequence (from the current row number down to 1) instead of repeating the same digit, adjust the inner loop to count backwards from i to 1.

Here's the code for this variant:

def print_mirrored_right_angle_reverse_pattern(number_of_rows):
    for i in range(1, number_of_rows + 1):
        print(" " * (number_of_rows - i), end='')
        # Loop from i down to 1 to create the reverse number sequence
        for j in range(i, 0, -1):
            print(j, end='')
        print()

Example Output for number_of_rows=4:

1
   21
  321
 4321

Key Changes Explained

  • For Solution 1: We replaced print(i, end='') with print(number_of_rows - i + 1, end='') to generate descending digits for each row.
  • For Solution 2: We modified the inner loop to use range(i, 0, -1), which iterates backwards from the current row number to 1, creating the reverse sequence per row.

内容的提问来源于stack exchange,提问作者irmaa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 17:32:31