这个问题考的是大数如何存储。如果你用int类型结果会是0
下面是代码块,如果加了这么多注释还是看不懂的话,随时发私信联系我交流。
欢迎交流,不要转载。
在这里插入代码片//main方法
public static void main(String[] args) {
//调用方法jiecheng5();
jiecheng5();
//调用方法jiecheng100();
jiecheng100();
}
public static void jiecheng5(){
//求1到5的阶乘之和。
//定义一个sum变量来保存阶乘的和
int sum = 0;
//进行循环1和5
for(int i=1;i<=5;i++){
//定义a保存阶乘的结果
int a = 1;
//循环求i的阶乘
for (int j=1;j<=i;j++){
a = a*j;
}
//把阶乘的结果存入sum中
System.out.println(a);
sum = sum + a;
}
//输出结果
System.out.println(sum);
}
public static void jiecheng100(){
//求一百的阶乘之和
//只能用math里边的BigDecimal来存储数据
//定义变量保存阶乘的和
BigDecimal sum = new BigDecimal(0);
//循环1到100
for(int i =1; i<=100;i++){
//定义变量保存阶乘的结果
BigDecimal result = new BigDecimal(1);
//循环求i的阶乘
for (int j=1;j<=i;j++){
//把i的值转换成BigDecimal类型
BigDecimal i_value = new BigDecimal(i);
//让result乘以i然后重新赋值给result
result = result.multiply(i_value);
}
//将阶乘的结果存入sum
sum = sum.add(result);
}
//输出结果
System.out.println(sum);
}