Erneut VBA Aufgabe |
Tamara20
Grünschnabel
Dabei seit: 18.06.2011
Beiträge: 5
|
|
Hallo Leute :-)
Frage:
Schreiben Sie eine Funktion, welche das nte Element der Collatzfolge liefert.Das Anfangselement wird dabei mitgezählt.
Also ich gebe z.b zahl 6 ein und nte zahl 3
6,3,10,5,16,8,4,2,1
dann muss die zahl 10 rauskommen.
Soweit habe ich es.
Public Function nte(ByVal a As Integer, ByVal n As Integer) As Integer
Do Until a = 1
If a Mod 2 = 0 Then
a = a / 2
Else
a = 3 * a + 1
End If
Loop
nte = a
End Function
Hier bekomme ich nun die 1 was bei collatz ja zum schluss rauskommen soll.
Wie und was muss ich hier einbauen?
Ich hatte mal versucht einen leeren string einzugeben und dann mit Mid(s,i,1) die nte stelle rauszubekommen.
Vielen dank schonmal :-)
|
|
24.06.2011 23:22 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Tipp: Abbruchbedingung der Schleife.
VG,
Karlito
|
|
25.06.2011 08:10 |
|
|
Tamara20
Grünschnabel
Dabei seit: 18.06.2011
Beiträge: 5
|
|
Public Function nte(ByVal a As Integer, ByVal n As Integer) As Integer
Do Until a = n
If a Mod 2 = 0 Then
a = a / 2
Else
a = 3 * a + 1
End If
Loop
nte = a
End Function
so habe ich das gemacht aber ich meinte das ist doch total faslch. so macht er ja nur wenn ich für n z.b 2 eingebe so lange geht die collatzschleife.
ich weiss nicht wie ich die funktion für n schreiben muss, das wenn ich collatz 1,5,6,7,9,16 und n 2 eingebe die 5 rauskommt.
die zündende idee fehlt mir ohhhh manooooo
versuch schon seit 1-2 tagen das hinzubekommen :-)
|
|
26.06.2011 21:10 |
|
|
Karlito
Kaiser
Dabei seit: 11.04.2011
Beiträge: 1.461
|
|
Nicht verzweifeln
Ich möchte dir nur ungern die Lösung verraten, da es dir aus meiner Sicht wenig hilft.
1. Frage: ist es wirklich wichtig, dass die schleife bei a=1 abbricht? Was passiert wenn man sie weiter ausführt.
2. Frage: Wenn du das n-te Glied der Folge berechnen willst, musst du die Bildungsvorschrift n mal ausführen. Wie könntest du das erreichen?
VG,
Karlito
|
|
26.06.2011 21:24 |
|
|
|