alas21 发表于 2011-3-16 15:54:22

不解, 求指教.

#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,小白问题别见笑=.=

风扫地 发表于 2011-3-20 02:00:09

看我的图吧。。。
n=3的函数调用流程。。。

gogo1979 发表于 2011-5-4 21:00:35

先支持一下
我得仔细的研究,以免枉费你一片苦心。

小甲鱼 发表于 2011-5-5 00:04:22

回复 风扫地 的帖子

哥们,图画得相当用心!
给力!{:5_106:}

gogo1979 发表于 2011-5-5 14:18:55

回复 风扫地 的帖子

发自内心的感谢你哥们。看完你画的图,使我明白了递归函数,而且带返回值的递归函数也迎刃而解。
以后还要向你讨教。

风扫地 发表于 2011-5-5 15:16:36

本帖最后由 风扫地 于 2011-5-5 15:17 编辑

回复 gogo1979 的帖子

能够帮到你。我也很开心。。共同学习!:loveliness:

Draem 发表于 2020-4-2 15:37:01

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]
查看完整版本: 不解, 求指教.