求指导这个用递归函数解答

img

img


希望各位帮忙看看 求指导这个 需要用递归函数求解 谢谢大家 没有什么思路

供参考:

#include <stdio.h>
#define LSIZE 81
void strDeletd(char str[], int dBegin, int dLen)
{
    if (str[dBegin + dLen] != '\0') {
        str[dBegin] = str[dBegin + dLen];
        strDeletd(str, dBegin + 1, dLen);    
    }
    else 
        str[dBegin] = '\0';
}
int main()
{
    char str[LSIZE];
    int  dBegin, dLen;
    scanf("%s", str);
    scanf("%d%d", &dBegin, &dLen);
    strDeletd(str, dBegin, dLen);
    printf("%s\n", str);

    return 0;
}

那就Dlen--然后递归循环,一次减一个字符,Dbegin不变,直到Dlen==0,return 输入

“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出