본문 바로가기

배운다/파이썬

143 : 반복제어문3 - 형성평가4

 

 

풀이 1 )

 

 

n = int(input("숫자입력: "))
for i in range(1, n+1)[::-1] :  
    print(" "*(n-i) + "*"*(i*2-1))
for i in range(2, n+1):  
    print(" "*(n-i) + "*"*(i*2-1))
    

 

 

 

 

풀이 2 )

 

 

n = int(input())

max = 2*n-1
for i in range(2*n-1):
    if i < n - 1:
        space = i
    else:
        space = 2*(n-1)-i
    fill = max - 2 * space
    print(' ' * space + '*' * fill)

''' OR
for i in range(n-1,0,-1):
    print(('*' * (2 * i + 1)).center(2 * n))
for i in range(n):
    print(('*' * (2 * i + 1)).center(2 * n))
'''

 

 

 

 

풀이 3 ) 

 

 

number = int(input(''))
line = 1
line2 = number
space = 0

while line <= 2*number - 1:
    if line < number:
        print(' '*space + '*'*(line2*2-1))
        line += 1
        line2 -= 1
        space += 1
    else:
        print(' '*space + '*'*(line2*2-1))
        line += 1
        line2 += 1
        space -= 1

 

 

 

 

 

풀이 4 )

 

 

 

def star_sandwatch(num):
    for i in range(0,2*num-1):
        if i >= num:
            value = (2*(i-num+1)+1)
        else:
            value = 2*(num-i)-1
            
        star_line = "*"*value
        print(star_line.center(2*num-1))
        
num = int(input())
star_sandwatch(num)