Wo finde ich BigInteger unter C#?



  • Ich möchte mit BigInteger arbeiten.
    Laut msdn muss dazu der Namensraum System.Numerics eingebunden werden.
    Der Compiler erkennt das jedoch nicht, auch Intellisense zeigt, dass es System.Numerics nicht gibt.
    Kann mir jemand weiterhelfen? Ich benutze Visual Studio Express 2013.



  • Du brauchst .NET 4.0 und einen Verweis auf die "System.Numerics.dll".
    Siehe auch diesen Stackoverflow Post.



  • Vielen Dank für den Hinweis. Der Compiler erkennt jetzt BigInteger.
    Dafür scheint das Programm fehlerhaft zu sein. Es kommen 43 Fehler.
    Das Programm ist nicht von mir, es ist von einem Teilnehmer auf
    projecteuler.net
    Ich wollte es einmal ausprobieren.
    Vielen Dank im Voraus!

    using System;
    using System.Collections.Generic;
    using System.Numerics;
    
    namespace _1213Euler025
    {
        class Program
        {
            static void Main()
            { //hier kommt der erste Fehler: } erwartet
                private static int limit = 1000;
    
                List<BigInteger> F = new List<BigInteger>();
                F.Add(1); // hier kommt der Fehler "F ist ein Feld, wird aber wie ein Typ verwendet
                F.Add(1);
    
                for ( int i = 2; true; i++ )
                {
                    F.Add(F[i - 1] + F[i - 2]);
                    if (F[i].ToString().Length >= limit)
                    {
                        Console.WriteLine("contain {0} digits is {1}.", limit, i + 1 );
                        return;
                    }
                }
            }
        }
    }
    


  • Pack die Zeile

    private static int limit = 1000;
    

    außerhalb der Main-Methode.



  • Danke! Jetzt funktionierts.


Log in to reply