07-15-2022, 04:50 PM
The Ackermann function, but the program crashes as soon as one enter "ackermann(4, 1)". Why?
The result of (4, 1) is 65533, which is in range. The program crashes, both in QB64 and in C (GCC - WinGW 11.02).
The result of (4, 1) is 65533, which is in range. The program crashes, both in QB64 and in C (GCC - WinGW 11.02).
Code: (Select All)
'Ackermann Funktion - 15. Juli 2022
'Absturz schon bei 4, 1 = 65533 (?)
Option _Explicit
Declare Function ackermann(m as Integer, n as Integer) as Long
Dim m, n As Long
Dim i, j As Integer
Print
Print "Ackermann Funktion - Geben Sie zwei Zahlen ein"
Print
Input "Zahl 1: ", m
Input "Zahl 2: ", n
Print
i = 0: j = 0
For i = 0 To m
For j = 0 To n
Print Using "Ackermann (#, #) = ####"; i, j, ackermann(i, j)
Next j
Next i
End
Function ackermann (m As Integer, n As Integer)
If m = 0 Then ackermann = n + 1
If m > 0 And n = 0 Then
ackermann = ackermann(m - 1, 1)
End If
If m > 0 And n > 0 Then
ackermann = ackermann(m - 1, ackermann(m, n - 1))
End If
End Function