求1+2!+3!+…+20!的和(递归方法)
解题思路,
第一步要先获取每个阶乘的值
第二步,把每个值相加
第三步想如何用递归方法 实现
一、什么是阶乘?
阶乘的意思就是把这个数的,从1到自身的整数 相乘
2!= 1 * 2
3!= 1 * 2 * 3
4!= 1 * 2 * 3 * 4
5!= 1 * 2 * 3 * 4 * 5
以此类推
二、递归方法 求阶乘的积
求n数的阶乘= n *(n-1)!
5!= 1 * 2 * 3 * 4 * 5 即 5!= 5 * 4!;
4!= 1 * 2 * 3 * 4 即 4!=4 * 3!;
代码如下(示例):
//阶乘返回值
public static long factorial(int number) {
if (number == 1||number==0) {
return 1;
} else{
return number * factorial(number - 1);
}
}
2.递归方法 求每个阶乘的积相加的和
定义一个sum用来接收使用factorial方法后返回阶乘的积
代码如下(示例):
//计算各阶层的和
public static long factorialSum(int number){
if (number == 0||number==1) {
return 1;
} else{
long sum =0;
sum += factorial(number);
return sum+factorialSum(number-1);
}
}
完整的代码
public class Task1217_3 {
public static void main(String[] args) {
System.out.println(factorialSum(20));
}
//阶乘返回值
public static long factorial(int number) {
if (number == 1||number==0) {
return 1;
} else{
return number * factorial(number - 1);
}
}
//计算各阶层的和
public static long factorialSum(int number){
if (number == 0||number==1) {
return 1;
} else{
long sum =0;
sum += factorial(number);
return sum+factorialSum(number-1);
}
}
}
版权声明:本文为qq_39215490原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。