逆ピラミッドとは?
↑の画像のように、指定した段数
奇数個の段を重ねていくピラミッドです。
逆ピラミッドの作り方
ソースコードは次のようになります。
N=int(input("逆ピラミッドの段数は?:")) for i in range(N): print(" "*i+"*"*(2*(N-i)-1))
プログラム解説
まず、Nに段数の値を入力し値が格納されます。
iは 0 からはじまり N-1 まで順に数をならべてくれます。
例えば)Nに3を格納した場合。
iは0から2までの数になります。
for文があるので、1回目のループでは i に0が格納された状態でprint文を迎えます。
その時、「” ”*0」 なので空白は表示されません。「”*”*(2*(3-0)-1)」なので”*”は5コ表示。
2回目のループでは、i に1が格納された状態なので、
print文では、「” ”*1」なので、” ”が1コ、「”*”*(2*(3-1)-1)」なので”*”は3コ表示されます。
3回目のループでは、i に2が格納された状態なので、
print文では、「” ”*2」なので、” ”が2コ、「”*”*(2*(3-2)-1)」なので”*”は1コ表示されます。
他にも、いろいろなやり方があります。
無駄に難しく考えたプログラムを作ってみると、面白いかもしれません。
for i in range(N): for j in range(i): print(" ",end="") for k in range(N-i): print("*",end="") for m in range(N-1-i): print("*",end="") print()
コメント