递归数列
最近遇到比较多的关于递归数列的一些问题,也因此对递归数列有些理解。以下是我曾经遇到的一个关于斐波那契数列比较有意思的例子,然后结合了我自己的理解,如果有出错,希望可以多指教。
阶乘函数
斐波那契数列
关于斐波那契数列的递归问题,我给大家分享一下之前学校老师给我们介绍过的一个例子:n阶Hanoi塔问题。
圆盘移动规则
1)每次只能移动一个圆盘;
2)圆盘可以插在X,Y和Z中的任一塔座上;
3)任何时刻都不能将一个较大的圆盘压在较小的圆盘上
void move(int n,char a,char b,char c)
{
if( n>0 )
{ move(n-1,a,c,b);
printf(“%c—>%c\n”,a,c);
move(n-1,b,a,c);
}
}
(1)从A移动1~n-1号圆盘至B,C作辅助;(递归调用)
(2)从A移动n号圆盘至C;(一次搬运)
(3)从B移动1~n-1号圆盘至C,A作辅助。(递归调用)