C# Language
BigInteger
Recherche…
Remarques
Quand utiliser
BigInteger
objets BigInteger
sont par nature très lourds en RAM. Par conséquent, ils ne devraient être utilisés qu'en cas d'absolue nécessité, c'est-à-dire pour des nombres à une échelle vraiment astronomique.
De plus, toutes les opérations arithmétiques sur ces objets ont un ordre de grandeur plus lent que leurs homologues primitifs. Il est donc possible pour un BigInteger
de provoquer un crash en consommant toute la RAM disponible.
Des alternatives
Si la vitesse est impérative pour votre solution, il peut être plus efficace d'implémenter cette fonctionnalité vous-même en utilisant une classe enveloppant un Byte[]
et en surchargeant vous-même les opérateurs nécessaires. Cependant, cela nécessite un effort supplémentaire considérable.
Calculez le premier nombre de Fibonacci à 1 000 chiffres
Incluez à l' using System.Numerics
et ajoutez une référence à System.Numerics
au projet.
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);
}
}
}
Cet algorithme simple parcourt les nombres de Fibonacci jusqu'à ce qu'il atteigne une longueur d'au moins 1000 chiffres décimaux, puis l'imprime. Cette valeur est nettement supérieure à ce que pourrait contenir un ulong
.
Théoriquement, la seule limite à la classe BigInteger
est la quantité de RAM que votre application peut consommer.
Remarque: BigInteger
est uniquement disponible dans .NET 4.0 et versions ultérieures.