为了账号安全,请及时绑定邮箱和手机立即绑定

阶乘是啥?那段代码的运行流程是什么样的,有大神帮忙解答吗?我是不是少上了一课?

阶乘是啥?那段代码的运行流程是什么样的,有大神帮忙解答吗?我是不是少上了一课?

正在回答

2 回答

阶乘是所有小于及等于该数的正整数

阶乘在数学课程里面有介绍,阶乘用“n!”表示n的阶乘。

1的阶乘:1!=1*1=1;

2的阶乘:2!=2*1=2;

3的阶乘:3!=3*2*1=6;

4的阶乘:4!=4*3*2*1=24;

5的阶乘:5!=5*4*3*2*1=120;

...

n的阶乘:n!=n*(n-1)*(n-2)*(n-3)*...*(n-(n-1));

0 回复 有任何疑惑可以回复我~

阶乘:

比如3的阶乘就是:3*2*1=6

6的阶乘就是:6*5*4*3*2*1=720




代码流程:

#include <stdio.h>

/* 定义获取单词数量的函数 */

int getWordNumber(int n)

{   

    if(n == 1)

    {

        return 1;    //第一天只会1个单词

    }

    else{

        return  getWordNumber(n-1)+n;      //到第天会的单词数量

    }

}

int main()

{

    int num = getWordNumber(10);     //获取会了的单词数量

    printf("小明第10天记了:%d个单词。\n", num);

    return 0;

}

n=10,运行getWordNumber函数,运行return  getWordNumber(n-1)+n;  
即为return  getWordNumber(10-1)+10;  然后运行getWordNumber(10-1)
即为return  getWordNumber((10-1)-1)+(10-1)即getWordNumber(9-1)+9,然后运行getWordNumber(9-1)
即为return  getWordNumber((9-1)-1)+(9-1)即getWordNumber(8-1)+8,然后运行getWordNumber(8-1)
。。。
直到
return  getWordNumber((2-1)-1)+(2-1)即getWordNumber(1-1)+1,然后运行getWordNumber(1-1)
即为return  getWordNumber(1-1)+1;  
然后运行getWordNumber(0)=1
综上代码运算结果为10+9+8+。。。+2+1


3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

阶乘是啥?那段代码的运行流程是什么样的,有大神帮忙解答吗?我是不是少上了一课?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信