[急!]java 求100阶乘各位数的和 已有答案,求解释!

BigDecimal big = new BigDecimal(1); //声明一个BigDecimal对象 int i = 1;while(i
[急!]java 求100阶乘各位数的和 已有答案,求解释!
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返回的是整数,用的较少
其他没多少区别2012-12-03
BigDecimal是一个用字符串来进行精确计算的类,这个类中加法就是,add();你可以查标准API里面有这个类的详细解释。银行计算浮点就是用这个类。原理很简单,我也写了这个乘法的类,可以计算如五万的阶乘等。2012-12-05
可以啊。2012-12-23
mengvlog 阅读 5 次 更新于 2025-07-19 06:54:54 我来答关注问题0
檬味博客在线解答立即免费咨询

Java相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部