티스토리 뷰
문제
1부터 10까지 자연수를 각각 제곱해 더하면 다음과 같습니다 (제곱의 합).
12 + 22 + ... + 102 = 385
1부터 10을 먼저 더한 다음에 그 결과를 제곱하면 다음과 같습니다 (합의 제곱).
(1 + 2 + ... + 10)2 = 552 = 3025
따라서 1부터 10까지 자연수에 대해 "합의 제곱"과 "제곱의 합" 의 차이는 3025 - 385 = 2640 이 됩니다.
그러면 1부터 100까지 자연수에 대해 "합의 제곱"과 "제곱의 합"의 차이는 얼마입니까?
연구
문제만 봐도 로직이 생각날 정도로 매우 직관적이고 간단한 문제다.
변수를 1부터 100까지 증가시키면서 '제곱의 합' 과 '합의 제곱' 을 구해 두 값의 차를 구하면 될 것 같다.
풀이
'제곱의 합' 과 '합의 제곱' 을 구할 변수타입을 long으로 선언하고 연구에서 말한 로직을 구현했다.
public class Problem_06 {
void solution() {
long x = 0, y = 0;
for (int i = 1; i < 101; i++) {
x += (i * i);
y += i;
}
y *= y;
System.out.println(y-x);
}
}
간단한 로직이므로 추가 설명은 생략한다.
결과
25164150
total time(ms): 0.182694
마치며
전 문제에 비해 난이도가 상당히 떨어졌다.
보너스 스테이지 같은 느낌이랄까.
'Programming > 프로젝트 오일러 문제풀이' 카테고리의 다른 글
프로젝트 오일러 :: 05번 문제풀이 :: java (0) | 2018.07.14 |
---|---|
프로젝트 오일러 :: 04번 문제풀이 :: java (0) | 2018.06.17 |
프로젝트 오일러 :: 03번 문제풀이 :: java (0) | 2018.06.12 |
프로젝트 오일러 :: 02번 문제풀이 :: java (0) | 2018.06.10 |
프로젝트 오일러 :: 01번 문제풀이 :: java (0) | 2018.06.05 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 안드로이드 컴포즈
- 개발자
- 런탭
- php
- LiveTemplate
- compose bottomsheet
- Kotlin
- 안드로이드 스튜디오
- 영어발음
- 안드로이드
- Android
- Programming
- 코딩문제
- 코틀린
- Java
- 프로젝트오일러
- 영어회화
- 코틀린 기초
- 컴포즈 바텀시트
- 문제풀이
- 안스 템플릿
- live template
- android studio
- 자바
- kotlin 기초
- 안드로이드 스튜디오 라이브 템플릿
- 프로그래밍
- 안드로이드 바텀시트
- 코딩
- 코틀린 기초강의
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함