[C++]프로젝트 오일러 2번 문제&풀이 (피보나치 수열에서 4백만 이하이면서 짝수인 항의 합)
문제 2번 피보나치(Fibonacci) 수열의 각 항은 바로 앞의 항 두 개를 더한 것입니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다. 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... 4백만 이하의 짝수 값을 갖는 모든 피보나치 항을 더하면 얼마가 됩니까? 접근방법 1. 첫번째 항은 1, 두번째 항은 2, 세번재 항부터는 이전 두개의 항을 더한 값이 나오는 피보나치 수열 함수를 만든다. 2. while 함수를 이용하여 피보나치 함수 값이 400만보다 작고, 3. 피보나치 함수 값이 2로 나눠지면 result에 저장한다. #include using namespace std; int fibo(int n) { if (n == 1) return 1; else if (n == 2..
2020. 11. 17.
[프로젝트 오일러] 5번 문제 & 풀이 (1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수)
Problem 5 1 ~ 10 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 2520입니다. 그러면 1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는 얼마입니까? 처음 아이디어 이 문제는 최소공배수를 구하는 문제이다 숫자 4, 6의 경우, 이 때의 최대공약수(GCD)는 2, 최소공배수(LCM)는 12이고, 4 = GCD * 2, 6 = GCD * 3 에서 LCM = GCD * 2 * 3 = GCD * 2 X GCD * 3 / GCD 이다. 이 때, 추가로 숫자 7과의 최대공배수를 구하려면, 처음부터 다시 최대공약수&최소공배수를 구할 필요 없이, 앞서 구한 최소공배수인 12와 7 사의의 최소공배수를 구하면, 이 값이 4, 6, 7의 최소공배수가 된다. 같은 논리로, 1부터 차례대로 20..
2020. 5. 30.