Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

알파벳을 사용하여 rangoli 패턴을 인쇄하는 Python 프로그램

<시간/>

숫자 n이 있다고 가정합니다. n x n 크기의 알파벳 rangoli를 만들어야 합니다. n은 1과 26 사이에 있어야 하며 n이 26일 때 a에서 시작하여 z에서 끝납니다.

따라서 입력이 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 사이의 i에 대해 1만큼 감소, do
    • 0~i-1 범위의 j에 대해 수행
      • "--" 인쇄
    • n-1 ~ i+1 범위의 j에 대해 1 감소, do
      • ASCII가 j+97인 문자를 인쇄하고 끝에 "-"를 추가로 인쇄
    • i에서 n-1 사이의 j에 대해 다음을 수행합니다.
      • j가 n-1과 같지 않으면
        • ASCII가 j+97인 문자를 인쇄하고 끝에 "-"를 추가로 인쇄
      • 그렇지 않으면
        • ASCII가 j+97인 인쇄 문자
    • 0 ~ 2*i - 1 범위의 j에 대해
      • 끝에 "-" 인쇄
    • 다음 줄로 이동
  • 1에서 n-1 사이의 i에 대해 다음을 수행합니다.
    • 0~i 범위의 j에 대해
      • "--" 인쇄
    • n-1 ~ i+1 범위의 j에 대해 1 감소, do
      • ASCII가 j+97인 문자를 인쇄하고 끝에 "-"를 추가로 인쇄
    • i에서 n-1 사이의 j에 대해 다음을 수행합니다.
      • j가 n-1과 같지 않으면
        • ASCII가 j+97인 문자를 인쇄하고 끝에 "-"를 추가로 인쇄
      • 그렇지 않으면
        • ASCII가 j+97인 인쇄 문자
    • 0 ~ 2*i - 1 범위의 j에 대해
      • 끝에 "-" 인쇄
    • 다음 줄로 이동

예시

더 나은 이해를 위해 다음 구현을 살펴보겠습니다.

def solve(n):
   for i in range(n-1,-1,-1):
      for j in range(i):
         print(end="--")
      for j in range(n-1,i,-1):
         print(chr(j+97),end="-")
      for j in range(i,n):
         if j != n-1:
            print(chr(j+97),end="-")
         else:
            print(chr(j+97),end="")
      for j in range(2*i):
         print(end="-")
      print()
   for i in range(1,n):
      for j in range(i):
         print(end="--")
      for j in range(n-1,i,-1):
         print(chr(j+97),end="-")
      for j in range(i,n):
         if j != n-1:
            print(chr(j+97),end="-")
         else:
            print(chr(j+97),end="")
      for j in range(2*i):
         print(end="-")
   print()

n = 8
solve(n)

입력

8

출력

--------------h--------------
------------h-g-h------------
----------h-g-f-g-h----------
--------h-g-f-e-f-g-h--------
------h-g-f-e-d-e-f-g-h------
----h-g-f-e-d-c-d-e-f-g-h----
--h-g-f-e-d-c-b-c-d-e-f-g-h--
h-g-f-e-d-c-b-a-b-c-d-e-f-g-h
--h-g-f-e-d-c-b-c-d-e-f-g-h--
----h-g-f-e-d-c-d-e-f-g-h----
------h-g-f-e-d-e-f-g-h------
--------h-g-f-e-f-g-h--------
----------h-g-f-g-h----------
------------h-g-h------------
--------------h--------------