본문 바로가기
프로그램/Python 1000제

Python 58제] 임의의 정수를 입력하여 마름모 도형을 출력하시오.

by 건티 2022. 4. 14.
728x90

출처 : 반크_세계유산 고인돌

 

문제]

임의의 정수 N을 입력하여 마름모 도형을 출력하는 프로그램을 작성하시오.

조건)

1. 임의의 정수 N은 홀수면 마름모를 출력하도록 한다.

2. 임의의 정수 N이 짝수면 에러 메세지를 출력하고 다시 입력하도록 한다.

3. N은 3<=N<=43 범위를 벗어나지 않도록 한다.
   만약 범위를 벗어나면 에러 메세지를 출력하고 다시 입력하도록 한다.

 

입력 예시1)

임의의 정수를 입력하시오 : 10

 

출력 예시1)

입력한 정수 10은(는) 홀수가 아닙니다.

다시 입력하세요...

 

입력 예시2)

임의의 정수를 입력하시오 : 2

 

출력 예시2)

입력한 정수 2은(는) 3~43사이의 수가 아닙니다.

다시 입력하세요...

 

입력 예시3)

임의의 정수를 입력하시오 : 55

 

출력 예시3)

입력한 정수 55은(는) 3~43사이의 수가 아닙니다.

다시 입력하세요...

 

입력 예시4)

임의의 정수를 입력하시오 : 5

 

출력 예시4)
    *
   ***
  *****
   ***
    *

 

참고풀이]

#조건에 맞는 임의의 정수를 입력 받는다.

while True:
    N=int(input("임의의 정수를 입력하시오 : "))
    if N%2==1 and 3<=N<=43:
        break
    if N%2==0 and 3<=N<=43:
        print(f"입력한 정수 {N}은(는) 홀수가 아닙니다.")
    if N<3 or N>43:
        print(f"입력한 정수 {N}은(는) 3~43사이의 수가 아닙니다.")
    print("다시 입력하세요...")

 

#마름모를 출력한다.
k=(N+1)//2
for r in range(1,N+1):
    if r<=(N+1)//2:
        k-=1
        print(" "*k,end='')
        print("*"*(r*2-1))
    else:
        k+=1
        print(" "*k,end='')
        print("*"*((N+1-r)*2-1))
        

 

 

참고풀이 결과]

 

 

 

 

대한민국의 아름다운 영토, 독도

 

반응형

댓글