Section 25.1: BigInteger 활용 - 피보나치 수열 중 처음으로 1,000 개의 숫자를 가지는 값 계산하기

using System.Numerics 문을 추가하고 프로젝트에 System.Numerics 로의 reference 를 우선적으로 추가한다.

using System; using System.Numerics; namespace Euler_25 { class Program { static void Main(string[] args) { BigInteger l1 = 1; BigInteger l2 = 1; BigInteger current = l1 + l2; while (current.ToString().Length < 1000) { l2 = l1; l1 = current; current = l1 + l2; } Console.WriteLine(current); } } }

이 간단한 알고리즘은 피보나치 수열을 계속해서 생성해 나가다가, 최소 1000개의 숫자가 등장하는 첫 시점에서 해당 값을 출력한다. 이 출력되는 값은 심지어 ulong 타입이 가질 수 있는 최대값보다도 훨씬 큰 값일 것이다.

이론적으로, BigInteger 클래스가 갖는 유일한 제약 사항은 사용자의 어플리케이션에게 할당 가능한 RAM 크기 뿐이다.

주의: BigInteger 는 .NET 4.0 혹은 그 이상 버전에서만 사용 가능하다.

본 문서는 C# Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/CSharpBook/

반응형

+ Recent posts