题解 | #牛群全排列数#
牛群全排列数
https://www.nowcoder.com/practice/5ab233c23fcc4c69b81bd5a66c07041c
考察的知识点:递归;
解答方法分析:
- 函数中使用了三目运算符,判断n是否小于等于1。如果是,则返回1,表示阶乘的结束条件。
- 如果n大于1,那么计算表达式((long long)n * factorial(n-1)) % 1000000007的值。((long long)n * factorial(n-1))表示将n乘以调用函数factorial的结果,即递归调用。最后对该值取模1000000007,以避免溢出并保证结果在合理范围内。
- 返回计算得到的结果。
所用编程语言:C++;
完整编程代码:↓
class Solution { public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param n int整型 * @return int整型 */ int factorial(int n) { return n <= 1 ? 1 : ((long long)n * factorial(n-1)) % 1000000007; } };