递归和栈的编程1

来源:互联网 发布:linux shell脚本教程 编辑:程序博客网 时间:2024/05/17 06:44

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

[题目]利用递归方法实现一个函数,该函数能够实现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;}




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


1 0