首页 > 代码库 > 两个递归程序(数组最大元素,汉诺塔)

两个递归程序(数组最大元素,汉诺塔)

1、递归返回数组中最大元素

//返回数组中最大元素int findMax(int a[], int n){    int next = 0;    if (n == 1) return a[0];    next = findMax(&a[1], n-1);    return a[0]>next ? a[0] : next;}

 

2、汉诺塔

/*汉诺塔:把盘子从A驻移动到C柱,大盘子时刻不能在小盘子之上输入:n(盘子数目)输出:步骤*/int hanoid(char A, char B, char C, int n){    if (n == 0) return 0;    if (n == 1)    {        printf("Move #%d from %c to %c\n", n, A, C);        return 0;    }    else    {        hanoid(A, C, B, n-1);        //hanoid(A, B, C, 1);        printf("Move #%d from %c to %c\n", n, A, C);        hanoid(B, A, C, n-1, step+2);    }    return 0;}

 

两个递归程序(数组最大元素,汉诺塔)