สมมติว่าเรามีตัวเลข n เราต้องสร้าง rangoli ตัวอักษรขนาด n x n n ต้องอยู่ภายใน 1 และ 26 และจะเริ่มต้นจาก a และสิ้นสุดที่ z เมื่อ n คือ 26
ดังนั้นหากอินพุตเท่ากับ 5 เอาต์พุตจะเป็น
---------e--------------e-d-e----------e-d-c-d-e------e-d-c-b-c-d-e--e-d-c-b-a-b-c-d-e-- e-d-c-b-c-d-e------e-d-c-d-e----------e-d-e -------------- e --------
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- สำหรับฉันในช่วง n-1 ถึง 0 ลดลง 1 ทำ
- สำหรับ j ในช่วง 0 ถึง i-1 ให้ทำ
- พิมพ์ "--"
- สำหรับ j ในช่วง n-1 ถึง i+1, ลดลง 1, ทำ
- พิมพ์อักขระที่มี ASCII คือ j+97 และพิมพ์พิเศษ "-" ต่อท้าย
- สำหรับ j ในช่วง i ถึง n-1 ทำ
- ถ้า j ไม่เหมือนกับ n-1 แล้ว
- พิมพ์อักขระที่มี ASCII คือ j+97 และพิมพ์พิเศษ "-" ต่อท้าย
- มิฉะนั้น
- พิมพ์อักขระที่มี ASCII คือ j+97
- ถ้า j ไม่เหมือนกับ n-1 แล้ว
- สำหรับ j ในช่วง 0 ถึง 2*i - 1 ทำ
- พิมพ์ "-" ต่อท้าย
- ไปบรรทัดถัดไป
- สำหรับ j ในช่วง 0 ถึง i-1 ให้ทำ
- สำหรับฉันอยู่ในช่วง 1 ถึง n-1 ทำ
- สำหรับ j ในช่วง 0 ถึง i ทำ
- พิมพ์ "--"
- สำหรับ j ในช่วง n-1 ถึง i+1, ลดลง 1, ทำ
- พิมพ์อักขระที่มี ASCII คือ j+97 และพิมพ์พิเศษ "-" ต่อท้าย
- สำหรับ j ในช่วง i ถึง n-1 ทำ
- ถ้า j ไม่เหมือนกับ n-1 แล้ว
- พิมพ์อักขระที่มี ASCII คือ j+97 และพิมพ์พิเศษ "-" ต่อท้าย
- มิฉะนั้น
- พิมพ์อักขระที่มี ASCII คือ j+97
- ถ้า j ไม่เหมือนกับ n-1 แล้ว
- สำหรับ j ในช่วง 0 ถึง 2*i - 1 ทำ
- พิมพ์ "-" ต่อท้าย
- ไปที่บรรทัดถัดไป
- สำหรับ j ในช่วง 0 ถึง i ทำ
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น
def Solve(n):for i in range(n-1,-1,-1):for j in range(i):print(end="--") สำหรับ j in range(n-1 ,i,-1):print(chr(j+97),end="-") สำหรับ j ในช่วง (i,n):if j !=n-1:print(chr(j+97),end ="-") อื่น:print(chr(j+97),end="") สำหรับ j ใน range(2*i):print(end="-") print() สำหรับฉัน ในช่วง (1,n ):สำหรับ j ในช่วง (i):print(end="--") สำหรับ j ในช่วง (n-1,i,-1):print(chr(j+97),end="-") สำหรับ j ในช่วง (i,n):ถ้า j !=n-1:print(chr(j+97),end="-") else:print(chr(j+97),end="") สำหรับ j in range(2*i):print(end="-") print()n =8solve(n)
อินพุต
8