[急!]java 求100阶乘各位数的和 已有答案,求解释!
答案:3 悬赏:0 手机版
解决时间 2021-12-04 14:16
- 提问者网友:练爱
- 2021-12-03 20:09
[急!]java 求100阶乘各位数的和 已有答案,求解释!
最佳答案
- 五星知识达人网友:鸽屿
- 2021-12-03 20:17
import java.math.BigDecimal; //导入包
public class DigitFactorial //定义类
{
public static void main(String[] args)
{
BigDecimal big = new BigDecimal(1); //声明一个BigDecimal对象
int i = 1;
while(i <= 100) //在i小于或等于100的时候执行下面的语句
{
big = big.multiply(new BigDecimal(i++)); //每次都用i的阶乘的结果取乘以i+1,得到i+1
//的阶乘,比如:i=1时, //big=1*2 时, big=1*2*3,最后得到100的阶乘
}
String str = big.toString(); //把100的阶乘转换成字符串
System.out.println("Result: " + str); //输出
int sum = 0;
for(i = 0; i < str.length();i++) //当i在0到str.length()之间时执行,也就是遍历//str 的每一个字符
{
sum += Integer.parseInt(String.valueOf(str.charAt(i))); //把每一个字符都换成整数再相加,得到所有数的和
}
System.out.println("Sum is: " + sum); //输出
}
}
BigDecimal和BigInteger用法的区别:
BigDecimal返回的是小数,可以进行四舍五入,用的较多;
BigInteger返回的是整数,用的较少
其他没多少区别
public class DigitFactorial //定义类
{
public static void main(String[] args)
{
BigDecimal big = new BigDecimal(1); //声明一个BigDecimal对象
int i = 1;
while(i <= 100) //在i小于或等于100的时候执行下面的语句
{
big = big.multiply(new BigDecimal(i++)); //每次都用i的阶乘的结果取乘以i+1,得到i+1
//的阶乘,比如:i=1时, //big=1*2 时, big=1*2*3,最后得到100的阶乘
}
String str = big.toString(); //把100的阶乘转换成字符串
System.out.println("Result: " + str); //输出
int sum = 0;
for(i = 0; i < str.length();i++) //当i在0到str.length()之间时执行,也就是遍历//str 的每一个字符
{
sum += Integer.parseInt(String.valueOf(str.charAt(i))); //把每一个字符都换成整数再相加,得到所有数的和
}
System.out.println("Sum is: " + sum); //输出
}
}
BigDecimal和BigInteger用法的区别:
BigDecimal返回的是小数,可以进行四舍五入,用的较多;
BigInteger返回的是整数,用的较少
其他没多少区别
全部回答
- 1楼网友:孤老序
- 2021-12-03 21:41
可以啊。
- 2楼网友:毛毛
- 2021-12-03 20:36
BigDecimal是一个用字符串来进行精确计算的类,这个类中加法就是,add();你可以查标准API里面有这个类的详细解释。银行计算浮点就是用这个类。原理很简单,我也写了这个乘法的类,可以计算如五万的阶乘等。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯