Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Project Euler 해답
- hg
- OS강의
- 운영체제
- 운영체제 제작
- 운영체제 만들기
- os 만들기
- OS 구조와 원리
- 맛집
- 운영체제 문제 풀이
- 쉽게 배우는 운영체제
- 맛집 추천
- project euler
- OS 제작
- 쉽게 배우는 운영체제 솔루션
- 건담
- rg
- OS 그래픽 처리
- OS 강의
- 건프라
- 건담 프라모델
- 운영체제 정리
- 30일
- 건담 엑스포
- Gundam
- OS
- 프라모델
- Project Euler Problem
- 쉽게 배우는 운영체제 풀이
- 쉽게 배우는 운영체제 연습문제
Archives
- Today
- Total
밤색모자이크의 개발이야기
Project Euler Problem 9 : a + b + c = 1000 이 되는 피타고라스 수 본문
Algorithm/Project Euler
Project Euler Problem 9 : a + b + c = 1000 이 되는 피타고라스 수
밤색모자이크 2017. 6. 19. 10:28Project Euler 문제를 해답을 포스팅합니다.
※ 주의 : 최적화는 할 수 있는 만큼했습니다. 따라서 속도면에서는 많이 부족합니다.
문제를 푸는데 목표를 두었고 또한 TDD를 최대한 활용하였습니다.
몇가지 문제의 경우 TDD를 안한 경우도 있습니다.
혹시, 최적화 또는 속도 증가에 대한 부분을 지적해주실 분은 너무나도 감사합니다.
Project Euler Problem 9
세 자연수 a, b, c 가 피타고라스 정리 a2 + b2 = c2 를 만족하면 피타고라스 수라고 부릅니다 (여기서 a < b < c ).
예를 들면 32 + 42 = 9 + 16 = 25 = 52이므로 3, 4, 5는 피타고라스 수입니다.
a + b + c = 1000 인 피타고라스 수 a, b, c는 한 가지 뿐입니다. 이 때, a × b × c 는 얼마입니까?
a,b,c에 대한 2가지 식이 있으므로 이것을 정리하면 a,b에 대한 식으로 나타낼 수 있습니다.
따라서, 1000 * (a + b) = (50000 + a * b) 을 만족하는 a와 b를 구하면 c도 구할 수 있습니다.
Source Code
Main Class Code
public class Main { public static void main(String [] args) { int a = 0; int b = 0; for(a = 0; a<1000; a++) { for(b = 0; b<1000; b++) { if( ( 1000 * ( a + b) ) == (500000 + a * b)) { System.out.println( "a : " + a + " b : " + b); } } } a = 200; b = 375; System.out.println( a * b * (1000 - a -b)); } }
'Algorithm > Project Euler' 카테고리의 다른 글
Project Euler Problem 11 : 20×20 격자에서 연속된 네 숫자의 곱 중 최대값 (0) | 2017.06.19 |
---|---|
Project Euler Problem 10 : 이백만 이하 소수의 합 (0) | 2017.06.19 |
Project Euler Problem 8 : 1000자리 숫자 안에서 이어지는 5자리 숫자의 곱 중 최대값은? (0) | 2017.06.19 |
Project Euler Problem 7 : 10001번째의 소수 (0) | 2017.06.18 |
Project Euler Problem 6 : 1부터 100까지 "제곱의 합"과 "합의 제곱"의 차는? (0) | 2017.06.18 |
Comments