永发信息网

java编程计算:1!+2!+3!+......+(n-1)+n!

答案:1  悬赏:0  手机版
解决时间 2021-11-24 01:30
java编程计算:1!+2!+3!+......+(n-1)+n!
最佳答案
package test;

import java.math.BigDecimal;

public class T {
public static void main(String[] args) {
// System.out.println(cal_(10));
System.out.println(cal(10));
}

// 输入10:

// 10的阶乘:3628800
// 9的阶乘:362880
// 8的阶乘:40320
// 7的阶乘:5040
// 6的阶乘:720
// 5的阶乘:120
// 4的阶乘:24
// 3的阶乘:6
// 2的阶乘:2
// 1的阶乘:1
// 3628800+362880+40320+5040+720+120+24+6+2+1=4037913

public static BigDecimal cal_(int num) {
BigDecimal n = factorial(num);
System.out.printf("%3d的阶乘:" + n + "\n", num);
if (num > 1) {
return factorial(num).add(cal(num - 1));
} else {
throw new IllegalArgumentException(String.valueOf(num));
}
}

// 1!+2!+3!+4!;
// 1 +2 +6 +24
public static BigDecimal cal(int num) {
String t = "";
BigDecimal bigDecimal = BigDecimal.valueOf(0);
for (int i = num; i > 0; i--) {
BigDecimal n = factorial(i);
System.out.printf("%3d的阶乘:" + n + "\n", i);
bigDecimal = bigDecimal.add(n);
t += n + (i - 1 > 0 ? "+" : "=");
}
System.out.println(t + bigDecimal);
return bigDecimal;
}

// 9!=9*8*7*6*5*4*3*2*1
public static BigDecimal factorial(int num) {
BigDecimal d = BigDecimal.valueOf(num);
if (num > 1)
return factorial(num - 1).multiply(d);
else if (num > 0) {
return BigDecimal.valueOf(1);
} else {
throw new IllegalArgumentException(String.valueOf(num));
}
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
速途网的转型自媒体
广州站k1008到信阳能补卧铺吗
我想问一下目前广东省矿泉水销量前三名都是哪
投资36万可以拿多少罗麦原始股
希望小学要买60个足球,现在甲、乙、丙三个商
哪部丧尸片最好看
昆山客运站到世茂广场坐几路公交
衡水达到霍州自驾多少公里
特别想跳楼是什么原因
四川省农村信用社(210国道)地址在哪,我要去
南京南站到南京汽车站怎么走?
一片杨树长500米,宽80米.这片杨树的面积有多
今天有去找恒大要面签的吗
喜欢和爱的区别,你真的懂吗
后缀是air的是什么文件啊 不懂啊
推荐资讯
65元一包中华香烟,它的成本价到底是多少
韩雪的爷爷是韩先楚吗
昨天晚上锦绣天地打架的事
vivoy13手机怎么遥控电视机
开关电源为什么可以用在100-240V,电压这么广
I have classes _____Tom。 A.at B.for C.wit
上哪个网站沟女快点啊
魅族u650是什么型号的手机
姓林华字辈取名
美制awg前面加一个#是什么意思
有哪些优秀耐玩重点是超火的游戏
女生只要那里漂亮都算外表漂亮?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?