阶乘是啥?那段代码的运行流程是什么样的,有大神帮忙解答吗?我是不是少上了一课?
阶乘是啥?那段代码的运行流程是什么样的,有大神帮忙解答吗?我是不是少上了一课?
阶乘是啥?那段代码的运行流程是什么样的,有大神帮忙解答吗?我是不是少上了一课?
2023-12-14
阶乘:
比如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
举报