读书人

有关问题20-求100!的各位数字之和

发布时间: 2012-12-27 10:17:10 作者: rapoo

问题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

读书人网 >编程

热点推荐