题目要求
求1!+2!+3!+4!+…+n!的和,n为键盘输入的数字
需要掌握的知识
1.Scanner键盘输入技术
2.方法的定义和调用
实现思路
两种方法
1.定义一个方法,方法里面使用一个循环,在调用时再使用一个循环反复调用
2.定义一个方法,方法里面使用嵌套循环
实现代码
//法1
import java.util.Scanner;
public class Main {
public static int factorial(int x){//factorial:阶乘
int product = 1;//乘积
for (int i = 1; i <= x ; i++) {
product = product * i;
}
return product;
}
public static void main(String[] args) {
int sum = 0;
Scanner s = new Scanner(System.in);
System.out.print("请输入一个数字:");
int n = s.nextInt();
for (int i = 1; i <= n ; i++) {//依次传递数字 1 ~ n,反复调用
sum+=factorial(i);
}
System.out.println("1~"+n+"的阶乘和为:"+sum);
}
}
//法2
import java.util.Scanner;
public class Main {
public static int factorial(int x){
int sum = 0;
for (int i = 1; i <=x ; i++) {
int product = 1;//乘积
for (int j = 1; j <= i ; j++) {
product = product * j;
}
sum+=product;
}
return sum;
}
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
System.out.print("请输入一个数字:");
int n = s.nextInt();
System.out.println("1~"+n+"的阶乘和为:"+factorial(n));
}
}
输出结果
请输入一个数字:5 1~5的阶乘和为:153
请输入一个数字:6 1~6的阶乘和为:873
觉得写的不错的话就点个赞呗



