计算第一个 1000 位斐波纳契数

包括 using System.Numerics 并将 System.Numerics 的引用添加到项目中。

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);
        }
    }
}

这个简单的算法迭代 Fibonacci 数,直到它达到一个至少 1000 个十进制数字的长度,然后打印出来。这个值远远大于 ulong 可以容纳的值。

从理论上讲,BigInteger 类的唯一限制是应用程序可以使用的 RAM 量。

注意:BigInteger 仅适用于 .NET 4.0 及更高版本。