Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
57
Task/Hailstone-sequence/Visual-Basic/hailstone-sequence.vb
Normal file
57
Task/Hailstone-sequence/Visual-Basic/hailstone-sequence.vb
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
Option Explicit
|
||||
Dim flag As Boolean ' true to print values
|
||||
Sub main()
|
||||
Dim longest As Long, n As Long
|
||||
Dim i As Long, value As Long
|
||||
' Task 1:
|
||||
flag = True
|
||||
i = 27
|
||||
Debug.Print "The hailstone sequence has length of "; i; " is "; hailstones(i)
|
||||
' Task 2:
|
||||
flag = False
|
||||
longest = 0
|
||||
For i = 1 To 99999
|
||||
If longest < hailstones(i) Then
|
||||
longest = hailstones(i)
|
||||
value = i
|
||||
End If
|
||||
Next i
|
||||
Debug.Print value; " has the longest sequence of "; longest
|
||||
End Sub 'main
|
||||
Function hailstones(n As Long) As Long
|
||||
Dim m As Long, p As Long
|
||||
Dim m1 As Long, m2 As Long, m3 As Long, m4 As Long
|
||||
If flag Then Debug.Print "The sequence for"; n; "is: ";
|
||||
p = 1
|
||||
m = n
|
||||
If flag Then Debug.Print m;
|
||||
While m > 1
|
||||
p = p + 1
|
||||
If (m Mod 2) = 0 Then
|
||||
m = m / 2
|
||||
Else
|
||||
m = 3 * m + 1
|
||||
End If
|
||||
If p <= 4 Then If flag Then Debug.Print m;
|
||||
m4 = m3
|
||||
m3 = m2
|
||||
m2 = m1
|
||||
m1 = m
|
||||
Wend
|
||||
If flag Then
|
||||
If p <= 4 Then
|
||||
Debug.Print
|
||||
ElseIf p = 5 Then
|
||||
Debug.Print m1
|
||||
ElseIf p = 6 Then
|
||||
Debug.Print m2; m1
|
||||
ElseIf p = 7 Then
|
||||
Debug.Print m3; m2; m1
|
||||
ElseIf p = 8 Then
|
||||
Debug.Print m4; m3; m2; m1
|
||||
Else
|
||||
Debug.Print "..."; m4; m3; m2; m1
|
||||
End If
|
||||
End If
|
||||
hailstones = p
|
||||
End Function 'hailstones
|
||||
Loading…
Add table
Add a link
Reference in a new issue