Problem #002
✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺/etc

Problem #002

오일러 알고리즘

🚩 문제 설명

오일러알고리즘 #02

◾ 피보나치 수열에서 400만 이하이면서 and 짝수인 항의 합 구하기

◾ 간단한 덧셈 문제

 

 


 

 

📑 문제 풀이

//20200107 오일러 알고리즘 Problem 2
#include <iostream>
using namespace std;
#define MAX 4000000

int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);		//cin의 입력 속도를 증가시켜줌

	int num1, num2, num3;	//num3 = num1 + num2
	int sum = 2;

	num1 = 1;
	num2 = 2;
	num3 = num1 + num2;	//num3 = 1+2 =3


	while (num3 <= MAX)	// MAX값 이하까지 돈다
	{
		
		num1 = num2;				// num1 = 1 -> num1 = 2
		num2 = num3;				// num2 = 2 -> num3 = 3
		num3 = num1 + num2;			// num3 = 2+3 = 5

		if (num3 >= MAX)
			break;

		if (num3 % 2 == 0)
			sum += num3;

		cout << "\t" << "sum : "<< sum << "\n";*/
	}
	
	cout << "sum : " << sum;
}

💬 Point

👉 A[n+2] = A[n] + A[n+1]
👉 if num % 2 == 0   

◾ MAX 상수를 4000,000 으로 잡는다.

◾ 피보나치수열 식을 사용하여 수를 더한다.

◾ 더한 수가 만약 MAX 보다 크다면 멈춘다.

◾ 만약 더한 수가 2로 나누어 떨어진다면 (짝수라면) sum에 더한다.

 

 


 

 

but,

✅ sum 변수의 위치를 앞으로 이동해줬으면 좋았을 것
✅ 그러면 굳이 앞에서 sum을 2로 초기화하지 않아도 됐을 것
✅ while 반복문의 조건을 MAX 값 미만으로 뒀으면 굳이 break를 쓰지 않아도 됐었을 것 

문제 푸는 텀이 5일이 되었다.

매일매일 한다는 약속은 어디갔나.

 

 


 

 

➕ Solution 풀이 사이트 첨부

https://www.mathblog.dk/project-euler-problem-2/

 

Solution to Project Euler problem 2 in C# | MathBlog

The solution to problem 2 of Project Euler: Find the sum of all the even-valued terms in the Fibonacci sequence which do not exceed four million.

www.mathblog.dk

 

 

 

 

 

 

 

 

 

 


 

728x90

'✏️ 𝗔𝗹𝗴𝗼𝗿𝗶𝘁𝗵𝗺 > etc' 카테고리의 다른 글

Problem #006  (0) 2020.01.21
Problem #005  (0) 2020.01.20
Problem #004  (0) 2020.01.16
Problem #003  (0) 2020.01.08
Problem #001  (0) 2020.01.02