본문 바로가기
  • Top Genius in the world
알고리듬

[알고리듬] #55 숫자 피라미드

by Mr.Algo 2024. 4. 15.
728x90
반응형

파이썬 실습창을 열 수 있습니다.실습창 열기

 

pyramid

 

숫자 피라미드

숫자 피라미드(number pyramid)는 피라미드 모양을 이루는 규칙적인 수식들의 모임입니다.

 

1. '1819' 피라미드

'1819 피라미드'는 다음과 같습니다.

         1 * 8 + 1 = 9
        12 * 8 + 2 = 98
       123 * 8 + 3 = 987
      1234 * 8 + 4 = 9876
     12345 * 8 + 5 = 98765
    123456 * 8 + 6 = 987654
   1234567 * 8 + 7 = 9876543
  12345678 * 8 + 8 = 98765432
 123456789 * 8 + 9 = 987654321

 

1-1 분석

피라미드를 자세히 관찰하여 봅시다.

  • '='의 왼쪽식을 연산하면 오른쪽의 숫자가 됩니다.
  • 바뀌는 것은 1부터 9까지의 숫자입니다.
    왼쪽 처음 숫자는 앞의 숫자를 10배하면서 1부터 9까지의 숫자를 더한것입니다.

1-2 코딩

어렵지 않습니다. 잘 분석하여 보세요.

n=0
for i in range(1,10):
    n=n*10+i                           # 왼쪽 처음 숫자를 만듬
    w=f'{n:10} * 8 + {i} = {n*8+i}'    # n을 10칸에 출력
    print(w)
    
    '''
    4번 줄 f-format이 안되면 다음과 같이 하세요.
    w='{:10} * 8 + {} = {}'.format(n,i,n*8+i)
    
    '''

 

2. 111' 피라미드

         1 * 1          =          1          
        11 * 11         =         121         
       111 * 111        =        12321        
      1111 * 1111       =       1234321       
     11111 * 11111      =      123454321      
    111111 * 111111     =     12345654321     
   1111111 * 1111111    =    1234567654321    
  11111111 * 11111111   =   123456787654321   
 111111111 * 111111111  =  12345678987654321

 

코딩하여 보세요.

더보기
n=0
for i in range(9):
    n=n*10+1
    w=f'{n:10} * {n:<10} = {n*n:^20}' 
    print(w)
    
 '''
 4번 줄: 오른쪽 정렬, 왼쪽 정렬, 가운데 정렬입니다.
 고급 포멧은 w='{:10} * {:<10} = {:^20}'.format(n,n,n*n)
 
 '''

 

3. '0911' 피라미드

도전하시겠습니까?

         0 * 9 +  1 = 1
        01 * 9 +  2 = 11
       012 * 9 +  3 = 111
      0123 * 9 +  4 = 1111
     01234 * 9 +  5 = 11111
    012345 * 9 +  6 = 111111
   0123456 * 9 +  7 = 1111111
  01234567 * 9 +  8 = 11111111
 012345678 * 9 +  9 = 111111111
0123456789 * 9 + 10 = 1111111111

 

더보기
n=''
for i in range(10):
    n+=str(i)
    w=f'{n:>10} * 9 + {i+1:2} = {int(n)*9+i+1}'
    print(w)
    
 '''
 숫자 앞의 0(영) 때문에 str을 사용하였습니다.
 4번 줄: n이 문자이므로 오른쪽 정렬하였습니다.
 고급 포멧은 다음과 같습니다.
 w='{:>10} * 9 + {:2} = {}'.format(n,i+1,int(n)*9+i+1)
 
 '''

 

알고보면 간단합니다.

'별 것 아니네!'

이렇게 생각되면 오늘 끝.

수고하셨습니다.

728x90
반응형

'알고리듬' 카테고리의 다른 글

[알고리듬] #57 크리스마스 선물  (0) 2024.04.16
[알고리듬] #56 테일러 급수  (2) 2024.04.16
[알고리듬] #54 구구단 표  (0) 2024.04.14
[알고리듬] #53 for문의 이해  (0) 2024.04.14
[알고리듬] #52 아이스크림  (0) 2024.04.13