不解, 求指教.
#include <stdio.h>void hanoi(int n)
{
if(n<0)
{
printf("c\n");
}
else if(n==0||n==1)
{
printf("b\n");
}
else{
hanoi(n-1);
printf("a\n");
hanoi(n-2);
}
}
void main()
{
int a;
printf("help\n");
scanf("%d",&a);
hanoi(a);
}
/*
上面的小程序,比如输入3,最后编译的结果是babab,我对这结果的顺序不理解,我的理解是
-1b
-2a-
3a- -0b
-1b
最后为什么不是输出bbaba呢?
*/刚学C,小白问题别见笑=.= 看我的图吧。。。
n=3的函数调用流程。。。 先支持一下
我得仔细的研究,以免枉费你一片苦心。 回复 风扫地 的帖子
哥们,图画得相当用心!
给力!{:5_106:} 回复 风扫地 的帖子
发自内心的感谢你哥们。看完你画的图,使我明白了递归函数,而且带返回值的递归函数也迎刃而解。
以后还要向你讨教。 本帖最后由 风扫地 于 2011-5-5 15:17 编辑
回复 gogo1979 的帖子
能够帮到你。我也很开心。。共同学习!:loveliness: f(n) = f(n - 1) + f(n - 2) + 1; n = 0,1 时f(n) = 1;
b a b a b a b a b a b a…………
页:
[1]