jrvf 发表于 2011-12-17 20:06:29

求助,阶乘递归的问题实在搞不懂

#include <stdio.h>

long recursion(int n);

void main()
{
        int n;
        long result;

        printf("input a interger number:\n");
        scanf("%d",&n);

        result = recursion(n);
        printf("%d! = %ld \n",n,result);
}
long recursion(int n)
{
        long 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;
}
为什么当n=1的时候temp要等于1?temp等于1之后就执行return temp这一行代码,这时的temp还是不是1?

http://bbs.fishc.com/xwb/images/bgimg/icon_logo.png 该贴已经同步到 jrvf的微博

jfztaq 发表于 2011-12-17 20:19:03

1和0的阶层不都等于1吗?n=1,temp不就是1吗?:dizzy:
页: [1]
查看完整版本: 求助,阶乘递归的问题实在搞不懂