快速幂函数优化1~n 的阶乘java实现
时间: 2023-10-27 21:05:06 浏览: 38
public class Main {
public static void main(String[] args) {
int n = 10;
int mod = 1000000007;
long[] factorial = new long[n + 1];
factorial[0] = 1;
for (int i = 1; i <= n; i++) {
factorial[i] = (factorial[i - 1] * i) % mod;
}
System.out.println("Factorial of " + n + " is " + factorial[n]);
}
}
相关问题
编写函数求1~n的阶乘之和
好的,以下是求1~n的阶乘之和的函数实现(使用了递归方式):
```python
def factorial_sum(n):
if n == 1:
return 1
else:
return n * factorial_sum(n-1) + 1
```
这个函数的基本思路是:如果 n == 1,返回 1(1 的阶乘为 1);否则,返回 n * factorial_sum(n-1) + 1。这个递归式的意义是:对于任意的 n,都有 1! + 2! + ... + n! = n! + (1! + 2! + ... + (n-1)!) + 1。递归调用 factorial_sum 函数即可。
matlab调用函数实现1到n的阶乘
可以使用递归的方式实现1到n的阶乘,具体的实现代码如下:
```
function res = factorial(n)
% 计算1到n的阶乘
if n == 0 || n == 1
res = 1;
else
res = n * factorial(n-1);
end
end
```
在 MATLAB 中,可以直接调用该函数来计算某个数的阶乘,比如计算 5 的阶乘,可以这样调用:`factorial(5)`,结果为 120。