请教关于递归函数求斐波那契序列

ydq2002873 2006-01-02 01:43:31
利用递归函数求斐波那契序列,并输出前20项的数字及前20项数字之和
...全文
316 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobdog1215 2006-01-02
  • 打赏
  • 举报
回复
递归逻辑清楚 比较好理解
所有的递归都可以用叠代来处理
但是叠代显然更难设计
汉诺塔如果用叠代来做的话估计看都看不懂
province_ 2006-01-02
  • 打赏
  • 举报
回复
不用递归用循环效率更高。
proer9988 2006-01-02
  • 打赏
  • 举报
回复
没必要定义2个递归函数,只要前1个就可以了!
northwolves 2006-01-02
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Dim I As Integer
For I = 1 To 20
Debug.Print "F(" & I & ")="; F(I); "SUMF(" & I & ")="; SUMF(I)
Next
End Sub
Function F(ByVal N As Long) As Long
If N = 1 Or N = 2 Then F = 1
If N > 2 Then F = F(N - 1) + F(N - 2)
End Function
Function SUMF(ByVal N As Long) As Long
If N = 1 Then SUMF = 1
If N > 1 Then SUMF = SUMF(N - 1) + F(N)
End Function

Return:
F(1)= 1 SUMF(1)= 1
F(2)= 1 SUMF(2)= 2
F(3)= 2 SUMF(3)= 4
F(4)= 3 SUMF(4)= 7
F(5)= 5 SUMF(5)= 12
F(6)= 8 SUMF(6)= 20
F(7)= 13 SUMF(7)= 33
F(8)= 21 SUMF(8)= 54
F(9)= 34 SUMF(9)= 88
F(10)= 55 SUMF(10)= 143
F(11)= 89 SUMF(11)= 232
F(12)= 144 SUMF(12)= 376
F(13)= 233 SUMF(13)= 609
F(14)= 377 SUMF(14)= 986
F(15)= 610 SUMF(15)= 1596
F(16)= 987 SUMF(16)= 2583
F(17)= 1597 SUMF(17)= 4180
F(18)= 2584 SUMF(18)= 6764
F(19)= 4181 SUMF(19)= 10945
F(20)= 6765 SUMF(20)= 17710

【问题描述】 【问题描述】编写函数f,功能是用递归的方法斐波那契数列的第n项,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f斐波那契数列的第n项,并在主函数中输出。 斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8 【问题描述】编写函数f,功能是用递归的方法斐波那契数列的第n项,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f斐波那契数列的第n项,并在主函数中输出。 斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8 【问题描述】编写函数f,功能是用递归的方法斐波那契数列的第n项,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f斐波那契数列的第n项,并在主函数中输出。 斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8 【问题描述】编写函数f,功能是用递归的方法斐波那契数列的第n项,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f斐波那契数列的第n项,并在主函数中输出。 斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8 斐波那契数列:1,1,2,3,5,8,13,21…… 【输入形式】3 【输出形式】2 【样例输入】6 【样例输出】8

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧