나선형으로 숫자를 나열한 다음 대각선 숫자들을 모두 더하면?
1번 문제와 비슷하다. 고등학교 때 배운 n을 더하는 공식, n^2을 더하는 공식으로 열심히 풀어 보면...
sum(a) = 1 + 9 + 25 + ..
= sum ( (2n-1)^2 )
= sum ( 4n^2 - 4n + 1)
= 4 * n * (n+1) * (2n+1) / 6 - 4 * n * (n+1) / 2 + n <= n=501
= 167668501
비슷한 방법으로 sum(b), sum(c), sum(d) 를 계산할 수... 굳이 따로 계산하지 않더라도 a[-1] - 12*i 로 계산할 수 있다.
sum(b+c+d) = (sum(a)-1) * 3 - 500*501/2*12
답은 나왔지만.. 이쯤 되면 코딩이 훨씬 편하다. 계산 실수도 없고.
No comments:
Post a Comment