对于给定的正整数N,需要你计算 S=1!+2!+3!+…+N!。
输入格式:
输入在一行中给出一个不超过10的正整数N。
输出格式:
在一行中输出S的值。
输入样例:
3
输出样例:
9
代码实现
第一种方式:普通for循环
import java.util.Scanner;
public class Main {
//S=1!+2!+3!+...+N!。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int sum = 0;
int m = 1;
for (int i = 1; i <= n; i++) {
//做阶乘运算
for (int j = 1; j <= i; j++) {
m = m * j;
}
//每次做完加入总数,m恢复为1
sum += m;
m = 1;
}
System.out.println(sum);
}
}
第二种方式:递归
public class Main {
//S=1!+2!+3!+...+N!。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int sum = 0;
//递归实现
for (int i = 1; i <= n; i++) {
sum += factorial(i);
}
System.out.println(sum);
}
// 递归
public static int factorial(int index){
if (index == 1){
return 1;
}else {
return index * factorial(index - 1);
}
}
}