알고리즘,손코딩 문제

프로젝트 오일러 문제 20 : 100! 의 자리수를 모두 더하면 얼마입니까?

알통몬_ 2017. 3. 11. 19:01
반응형


안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

n! 이라는 표기법은 n × (n − 1) × ... × 3 × 2 × 1을 뜻합니다.

예를 들자면 10! = 10 × 9 × ... × 3 × 2 × 1 = 3628800 이 되는데,
여기서 10!의 각 자리수를 더해 보면 

3 + 6 + 2 + 8 + 8 + 0 + 0 = 27 입니다.

100! 의 자리수를 모두 더하면 얼마입니까?


이 예제에서는 long타입으로는 표현할 수 없는 값이라 

BigInteger 클래스를 사용하였습니다!!


public class Question20 {

public static void main(String[] args) {

BigInteger bi = new BigInteger("1");

int num = 0;

for (int i = 2; i <= 100; i++) {

bi = bi.multiply(BigInteger.valueOf(i));

}

System.out.println(bi);

String number = String.valueOf(bi);


String str[] = number.split("");

for (int i = 0; i < str.length; i++) {

num += Integer.parseInt(str[i]);


}

System.out.println(num);

}

 

}

반응형