package class01;
/**
* 给定一个参数N,
* 返回:1!+2!+3!+...+N! 的结果。
* (即:求1的阶乘到N的阶乘的累加和。)
*/
public class Code01_SumOfFactorial {
public static void main(String[] args) {
int N = 10;
System.out.println(f1(N));
System.out.println(f2(N));
}
//方法1:先求单个数的阶乘,再把每一个单个数的阶乘,累加起来。
public static long f1(int N) {
long ans = 0;
for (int i = 1; i <= N; i++) {
ans += factorial(i);//把每一个数的阶乘,累加。
}
return ans;
}
public static long factorial(int N) {//求N的阶乘
long ans = 1;
for (int i = 1; i <= N; i++) {
ans *= i;
}
return ans;
}
//方法2:用一个变量cur,来记录每一个数的阶乘。在用ans,来记录1的阶乘,到N的阶乘的累加和。
public static long f2(int N) {
long ans = 0;
long cur = 1;
for (int i = 1; i <= N; i++) {
cur = cur * i;//没有写成cur *= i;为了更好地理解:上一轮的阶乘(等号右边的cur),乘上这一轮的数字(即i),就是这一轮的阶乘(等号左边的cur)。
// 也就是说,每一个当前阶乘的结果,都是踩着上一步的结果,乘上i得来的。(复用了上一步的结果)。
ans += cur;
}
return ans;
}
}
这个地板不太烫
- 粉丝: 113
- 资源: 212
最新资源
- 学习记录111111111111111111111111
- 通过java实现原型模式(Prototype Pattern).rar
- 通过python实现原型模式(Prototype Pattern).rar
- xiefrnsdklmkds
- 基于PyQt5+pytorch的在线疲劳检测系统项目源码+文档说明(Python毕业设计)
- Excel表格拆分工具.exe
- Python毕业设计基于PyQt5+pytorch的在线疲劳检测系统项目源码+文档说明
- 基于Unity开发的消消乐小游戏源代码(毕业设计和大作业适用).zip
- 基于hadoop和hbase的电商交易记录的简单分析项目源码+文档说明.zip
- Vue 3前端框架核心特性详解及其应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈