สมมติว่าเรามีตัวเลข n ต้องวาดรูปเพชร (Diamond) ด้วย * จำนวน 2n-1 แถว แถว 1 ถึง n มี * เพิ่มทีละ 1 แถว n+1 ถึง 2n-1 ลดทีละ 1
ตัวอย่าง n = 5:
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
ขั้นตอนการแก้ปัญหา
- for i ในช่วง 1 ถึง n: พิมพ์ '* ' ซ้ำ i ครั้ง จัดกึ่งกลาง (center) ในช่องกว้าง 2*n-1
- for i ในช่วง n-1 ถึง 1: พิมพ์ '* ' ซ้ำ i ครั้ง จัดกึ่งกลางในช่องกว้าง 2*n-1
ตัวอย่างโค้ด
def solve(n):
for i in range(1, n+1):
print(('* '*i).center(2*n-1))
for i in range(n-1, 0, -1):
print(('* '*i).center(2*n-1))
n = 10
solve(n)
อินพุต
10
เอาต์พุต
(รูปเพชร 19 แถว)