Visual Basic Forum

Visual Basic Forum
für VB6 und VB.NET Programmierer
 
RegistrierenRegistrieren  LoginLogin

Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten
Autor
Nachricht
sollniss_
Coder
Coder

Anmeldedatum: 08.09.2007
Beiträge: 212

Fakultät
Verfasst am: 20.04.2008, 16:10

Habe bereits diese beiden Funktionen gefunden:

Code:
Private Function FakIter(ByVal n As Integer) As Integer
        Dim Temp As Integer = 1 'die Fakultät von 0 als Ausgangspunkt
        Dim Crnt As Integer = 0 'zurzeit berechnen wir die Fakultät von 0 (Crnt = Current = zurzeit)
        Do While Crnt < n       'die gewünschte Fakultät ist noch nicht erreicht
            Crnt += 1           'wir berechnen die nächsthöhere Fakultät
            Temp *= Crnt        'Berechnung der nächsthöheren Fakultät
            'Temp enthält die aktuelle Fakultät (i-1)!, Crnt enthält i
        Loop
        Return Temp             'nach der Schleife liegt auf Temp die gewünschte Fak. vor
    End Function


Code:
Private Function FakRek(ByVal n As UInteger) As UInteger
        If n = 0 Then Return 1 'Rekursionsanfang
        Return n * FakRek(n - 1)    'Rekursionsschritt
    End Function


nur leider bekomm ich bei größeren Zahlen (zB 32) einnen Error (Overflow Exception) und denn steht zur Fehlerbehebung da, dass ich nicht durch 0 teilen soll.. Bei kleinen Zahlen funktioniert es.
_________________
http://sollniss.1x.to/

 
Marduk_
« Moderator »<b><font color=green>« Moderator »</font



Anmeldedatum: 17.06.2007
Beiträge: 389


Verfasst am: 20.04.2008, 16:25

Integer ist nicht für solch große Zahlen ausgelegt, für solch große Zahlen kannst du Decimal, Double oder Object nehmen. Wobei du dann bei extrem großen Zahlen ein langsamere Berechnung hast.
_________________
 
Neues Thema eröffnen   Neue Antwort erstellen    Visual Basic Forum Foren-Übersicht -> [VB.NET] Fragen - Antworten

Tags: fakultät, berechnen, schleife, zahlen, berechnung

 
 Verwandte Themen   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Wichtig: [Video] Funktionen 3143 31.07.2010, 14:32
Keine neuen Beiträge Wo liegt mein Fehler?? bitte schnelle Hilfe! 89 20.10.2011, 17:43
Keine neuen Beiträge [Frage] Ich bekomme einen Fehler das "End if" fehlt obwohl e 641 14.09.2008, 15:33
Keine neuen Beiträge Index liegt ausserhalb des gültigen Bereichs Bulder/Server 252 15.03.2008, 15:45
Keine neuen Beiträge Wo liegt der Fehler (msgbox) 628 16.10.2007, 16:54
 



[ Time: 0.1750s ][ Queries: 85 (0.0333s) ][ GZIP on - Debug on ]