통계, IT, AI

28. Number spiral diagonals 본문

IT/PROJECT_EULER

28. Number spiral diagonals

Harold_Finch 2017. 1. 30. 00:52

1. 개요

문제는 이곳에서 확인할 수 있다. 1부터 시계 방향으로 늘어놓은 뒤 대각선에 있는 숫자들의 합을 구할 수 있다. 아래의 예는 5행 5열의 숫자더미이며 대각선의 숫자의 합은 101이다. 


그림 1. 5행 5열로 숫자를 쌓았다.그림 1. 5행 5열


1001행 1001열의 숫자더미에서 대각선의 숫자의 합을 구하는 것이 목표이다.


2. 구현: ver 1.0

일반항을 구하여 문제를 해결하자. 1부터 시작하여 오른쪽에 존재하는 숫자들의 개수를 층이라고 정의하자. 예를 들면, 그림 1은 3층이다. 그러면 오른쪽 대각선의 있는 숫자는 층수 번째 홀수의 제곱임을 알 수 있고 이를 이용하여 일반항을 구할 수 있다.

# -*- coding: utf-8 -*-
n = 500
print(n*(8*(n+1)*(2*n+1)//3+2*n+6)+1)

답음 669171001이다.

'IT > PROJECT_EULER' 카테고리의 다른 글

30. Digit fifth powers  (0) 2017.01.31
29. Distinct powers  (0) 2017.01.30
27. Quadratic primes  (0) 2017.01.29
26. Reciprocal cycles  (0) 2017.01.29
25. 1000-digit Fibonacci number  (0) 2017.01.28
Comments