728x90
반응형
안녕하세요? 오늘은 C#으로 피보나치 수열을 코딩해보고 프로젝트 오일러(http://euler.synap.co.kr/)의 두번째 문제를 풀어보도록 하겠습니다.
-소스코드-
int x = 0;
int y = 1;
int z = 0;
int sum = 0;
for(int i = 1; i>=0; i++) // 제한없이 무한대로 반복함.
{
z = x + y; // 피보나치 수열에서 앞 두개 더한 값을 얻음.
x = y; // 두번째수가 첫번째수로 됨.
y = z; // 더한값이 두번째 수가됨.
Console.WriteLine(z); //수열 확인(단, i>=0으로 했을 시에는 값이 한없이 나와서 테스트 할때엔 i 값을 10정도로 제한하고 사용하길 바람.)
}
재귀함수를 이용하지 않고 초보자도 보기쉽고 직접 코딩할 수 있게끔 해놓았습니다. 소스에 대한 설명은 주석을 참고 하시길 바라며 그래도 이해가 안된다 하시면 댓글로 질문해주시길 바랍니다.
이제는 문제를 풀어보도록 하겠습니다.(문제의 답은 아래로 내리시면 있습니다.)
문제 - 피보나치 수열의 각 항은 바로 앞의 항 두 개를 더한 것이 됩니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다.
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
짝수이면서 4백만 이하인 모든 항을 더하면 얼마가 됩니까?
정답
int x = 0;
int y = 1;
int z = 0;
int sum = 0;
for(int i = 1; i>=0 && z <=4000000; i++)
{
z = x + y; //z==3
x = y;
y = z;
if(z % 2 == 0)
{
sum += z;
}
}
Console.WriteLine(sum); // 4백만 이하일때 합
728x90
반응형
'CODING > C#' 카테고리의 다른 글
[C#]사진 정리 프로그램 (0) | 2020.02.18 |
---|---|
로또 시뮬레이션 in C# (1) | 2019.06.10 |
듀공 화면 잠금기(스크린 세이버/Screen Saver) in C# (0) | 2019.02.03 |
보어의 원자 모형에 의한 원자의 전자 배치(오비탈:화학)프로그램 (0) | 2018.08.10 |