Function a(n As Integer)
a(1) = 1: a(2) = 1If n >= 3 Then
a = a(n - 1) + a(n - 2)
Else
a = 1请问:以下代码,第二行提示堆栈溢出,为什么会出现这种情况,因为a 不是数列,而是一个功能函数End If
End Function
Private Sub Form_Load()
Dim i As Integer
Dim b(9) As Integer
For i = 1 To 9 b(i) = a(i)
 Print b(i);
 Next
 
End Sub

解决方案 »

  1.   

    请问:以下代码,第二行提示堆栈溢出,为什么会出现这种情况,因为a 不是数列,而是一个功能函数Function a(n As Integer)
    a(1) = 1: a(2) = 1If n >= 3 Then
    a = a(n - 1) + a(n - 2)
    Else
    a = 1
    End If
    End FunctionPrivate Sub Form_Load()
    Dim i As Integer
    Dim b(9) As Integer
    For i = 1 To 9
     b(i) = a(i)
     Print b(i);
     Next
     
    End Sub
      

  2.   

    请问你的a(1)、 a(2)、 a(n - 1) 、a(n - 2)从何而来
    也不是递归
    函数当变量用?错得离谱了
      

  3.   

    是递归:a(1)表示当功能函数的参数为1的时候.a(2),a(n-1)和a(n-2)也是一样.
      

  4.   

    Function a(n As Integer)
    if n=1 then 
     a=1:exit function
    endif
    if n=2 then 
     a=2:exit function
    endif
    '''''''''改写这个函数
    ''''''''''a(1) = 1: a(2) = 1If n >= 3 Then
    a = a(n - 1) + a(n - 2)
    Else
    a = 1
    End If
    End Function