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/
반응형
'번역 > C# Notes for Professionals' 카테고리의 다른 글
26.2: C# 6 인덱스 초기자 (Index initializer) (0) | 2021.07.07 |
---|---|
26.1: 컬렉션 초기자 (Collection initializer) (0) | 2021.07.06 |
24.3: Null 값일 수도 있는 GUID 선언하기 (0) | 2021.07.05 |
24.2: GUID 생성하기 (0) | 2021.07.05 |
24.1: GUID 를 문자열 형식으로 표현하기 (0) | 2021.07.02 |