では、番号 5 から始めましょう。最善の方法は、単純に各行に何を出力する必要があるかを考えてから、それを行っている行をループすることです。
その数を使用すると、次のように 5 行を出力する必要があります (.
隣接する行を識別しやすいので、スペースに使用します)。
....X
...XX
..XXX
.XXXX
XXXXX
次のように各行を見てください。
- 最初の行には 4 つのスペースと
x
.
- 2 行目には 3 つのスペースと 2 つ
x
の 's があります。
- 3 行目には 2 つのスペースと 3 つ
x
の 's があります。
- 4 行目には 1 つのスペースと 4 つ
x
の 's があります。
- 5 行目にはスペースと 5 がありません
x
。
ここでパターンを感知します ((4,1), (3,2), (2,3), (1,4), (0,5)) - 最初の数字はn-1
(この場合は 4) から始まり、減少します2 番目の数値は 1 から始まり、n
(この場合は 5) まで増加します。
疑似コード (宿題タイプの質問について私から得たのはこれだけです) では、次のようになります。
def maketriangle (n):
for lineidx = 1 to n:
for charidx = 1 to n - lineidx: // 4 3 2 1 0
output " "
for charidx = 1 to lineidx: // 1 2 3 4 5
output "X"
output newline
あなたの仕事は、それを実際のコードに変換することです。