mack1983 发表于 2014-3-15 22:01:02

第036讲,递归例题

这道题理解的实在很模糊,以置于都不知道怎么说明问题,哎~~~
直接代码上图,两张力拼成一张图,不给上传这大的一张图
/*
用递归的方式求n的阶乘
*/
#include <stdio.h>
double recursion(double n);
void main()
{
double n,result;
printf("请输入递归数值:");
scanf("%lf",&n);
result=recursion(n);
printf("%lf的递归值=%lf\n",n,result);
}
double recursion(double n)
{
double temp;

if(n<0)
{
printf("n<0,input error!\n");
}
    else if (n==0||n==1)
{
temp=1;
}
else
{
temp=recursion(n-1)*n;
}
return temp;
}



wang727555679 发表于 2014-3-15 22:44:31

感觉很不错够看一阵子了啊

牡丹花下死做鬼 发表于 2014-3-15 22:50:48

#include<stdio.h>

int recursion(int i);

int main()
{
        int i,result;
        printf("请输入一个整数:");
        scanf("%d",&i);
        result = recursion(i);//直接计算我就不管非法输入了啊
        printf("!%d=%d\n",i,result);
        return 0;
}
int recursion(int i)
{
        if(i == 1)
        {
                return 1;
        }
        else
        {
                return i * recursion(i-1);
        }
}

qaed 发表于 2014-3-15 23:44:20

期待高人{:1_1:}{:1_1:}{:1_1:}{:1_1:}

mack1983 发表于 2014-3-16 00:05:47

牡丹花下死做鬼 发表于 2014-3-15 22:50 static/image/common/back.gif


我那代码也是正确的,问题是看不懂他的执行过程~单步调试,最后就就最后两个重复执行了5次,结果就出来了,

machimilk 发表于 2014-3-16 00:08:52

mack1983 发表于 2014-3-16 00:05 static/image/common/back.gif
我那代码也是正确的,问题是看不懂他的执行过程~单步调试,最后就就最后两个重复执行了5次,结果就出来了,

想象一下 函数自己调用自己
页: [1]
查看完整版本: 第036讲,递归例题