SARACEN's Blog
  • 피보나치 수열 구하기(C#으로!)
    2018년 03월 14일 22시 12분 05초에 업로드 된 글입니다.
    작성자: RACENI

    안녕하세요? 오늘은 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백만 이하일때 합
    
    
    댓글