<div><br></div> <p style="margin:0px 0px 10px;color:#555555;font-size:medium;"><font face="맑은 고딕">피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.</font></p> <p style="margin:0px 0px 10px;color:#555555;font-size:medium;"><font face="맑은 고딕">이를 식으로 써보면 F<span style="font-size:12px;line-height:0;vertical-align:baseline;">n</span> = F<span style="font-size:12px;line-height:0;vertical-align:baseline;">n-1</span> + F<span style="font-size:12px;line-height:0;vertical-align:baseline;">n-2</span> (n>=2)가 된다.</font></p> <p style="margin:0px 0px 10px;color:#555555;font-size:medium;"><font face="맑은 고딕">n=17일때 까지 피보나치 수를 써보면 다음과 같다.</font></p> <p style="margin:0px 0px 10px;color:#555555;font-size:medium;"><font face="맑은 고딕">0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597</font></p> <div><span style="color:#555555;font-size:medium;"><font face="맑은 고딕">n이 주어졌을 때, n번째 피보나치 수를 구하는 프로그램을 작성하시오.</font></span></div> <div><font face="맑은 고딕"><br></font></div> <div><span style="color:#585f69;font-family:'Open Sans', 'Helvetica Neue', Helvetica, Arial, 'Apple SD Gothic Neo', 'Noto Sans CJK KR', 'Noto Sans KR', '나눔바른고딕', '나눔고딕', NanumGothic, '맑은고딕', 'Malgun Gothic', 'Nanum Gothic', sans-serif;font-size:22px;">출력</span></div> <div><font face="맑은 고딕"><span style="color:#555555;font-size:medium;">첫째 줄에 n번째 피보나치 수를 1,000,000으로 나눈 나머지를 출력한다.</span><span style="white-space:pre;"> </span> </font></div> <div><br></div> <div><br></div> <div><span style="white-space:pre;"> </span><font face="돋움"> Scanner sc = new Scanner(System.in);</font></div> <div><font face="돋움"> long n = sc.nextLong();</font></div> <div><font face="돋움"> if(n == 0) {</font></div> <div><font face="돋움"> <span style="white-space:pre;"> </span>System.out.println(0);</font></div> <div><font face="돋움"> <span style="white-space:pre;"> </span>return;</font></div> <div><font face="돋움"> }</font></div> <div><font face="돋움"> </font></div> <div><font face="돋움"> long[] list = new long[(int) (n % 1500000) + 1];</font></div> <div><font face="돋움"> list[0] = 0;</font></div> <div><font face="돋움"> list[1] = 1;</font></div> <div><font face="돋움"> long mod = 1000000;</font></div> <div><font face="돋움"> int i = 2;</font></div> <div><font face="돋움"> for (; i < list.length; i++) {</font></div> <div><font face="돋움"> list[i] = (list[i - 2] % </font><span style="font-family:'돋움';">mod</span><font face="돋움">) + (list[i - 1] % </font><span style="font-family:'돋움';">mod</span><font face="돋움">);</font></div> <div><font face="돋움"> list[i] = list[i] % mod;</font></div> <div><font face="돋움"> }</font></div> <div><font face="돋움"> System.out.println(list[i - 1]);</font></div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.