递归和栈的编程1

本文提供两个递归函数实例:一是计算整数的阶乘,二是将输入的字符串进行倒序输出。通过C语言实现,帮助理解递归的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

很久以前自己做的一些训练题,很经典,贴出来和大家分享下,如有错误请多指教 ^-^

[题目]利用递归方法实现一个函数,该函数能够实现n的阶乘,即n! = n * (n - 1) * ... * 3 * 2 * 1;

</pre><pre class="csharp" name="code">/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:递归实现n的阶乘
Funcion List: 
*****************************************************/

#include <stdio.h>

int mul(int num)
{
    if(num > 1)
    {
        return (num * mul(num - 1));  //实现递归
    }
    else if(1 == num)
    {
        return 1;
    }
}

int main()
{
    int num;

    printf("请输入一个整数:");
    scanf("%d", &num);

    printf("%d! = %d\n", num, mul(num));

    return 0;
}


【题目】利用递归函数调用方式,将所输入的n个字符以相反顺序打印出来

/*****************************************************
copyright (C), 2014-2015, Lighting Studio. Co.,     Ltd. 
File name:
Author:Jerey_Jobs    Version:0.1    Date: 
Description:将包含n个字符的字符串倒序
Funcion List: 
*****************************************************/

#include <stdio.h>

void rank(char a[])
{
    if((*a) != '\0')
    {
        rank(a + 1);
    }
    putchar(*a);
}

int main()
{
    int n;
    char a[10];
    printf("请输入要输入的字符个数:");
    scanf("%d", &n);
    printf("请输入%d个字符:\n", n);
    scanf("%s", a);

    rank(a);

    printf("\n");

    return 0;
}




很久以前自己做的一些训练题,很经典,贴出来和大家分享下,如有错误请多指教 ^-^


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值