问题20-求100!的各位数字之和
问题描述如下:
“n!=n*(n-1)*...*2*1,求100!的各位数字之和。”
?
上代码:
/** * n! * * @param n * @return */private static Long factorial(Long n) {Long result = n;for (Long i = n - 1; i > 1; i--) {result *= i;}return result;}?由于超出100!的范围,使用BigDecimal,代码如下:
/** * n! * * @param n * @return */private static String factorial(Long n) {BigDecimal result = new BigDecimal(n);for (Long i = n - 1; i > 1; i--) {result = result.multiply(new BigDecimal(i));}return result.toString();}?求和:
/** * 求n!的各位数字之和 * @param s * @return */private static int sum(String s){int sum=0;for (int i = 0; i < s.length(); i++) {sum+= Integer.parseInt(s.charAt(i)+"");}return sum;}?通过sum(factorial(100L))可以得到结果:648
?
请不吝赐教。
@anthor ClumsyBirdZ