프로젝트 오일러 다시 도전...
어려운 문제에 도전했다가 잘 안 풀려서, 쉬워 보이는 문제부터 풀었다.

Problem 20 : Find the sum of digits in 100!

이 문제를 푸는 알고리듬은 간단한데, R에서 문제는 자릿수가 커지면 근사치로 계산되고 유효숫자로 표현된다는 것이다.
그래서, 자릿수를 유지하면서 정확한 수치로 계산되도록 했다.
숫자를 텍스트 배열로 변환해서 푸는 방법도 있을 것 같았으나, 10진법 개념을 그대로 활용해서 풀었다.
문제를 풀고 난 후에, 다른 사람들이 공유한 코드를 보니, 간단하게 서너 줄로 작성한 다른언어 코드도 보였다.


위(위 밑줄친 부분)에서는 자릿수를 구하기 위해 log 연산의 기본 특징을 사용했는데, 일반화시키면 아래와 같다. 

비슷한 문제로 아래 16번 문제도 있었다.

Problem 16 : What is the sum of the digits of the number 21000?



아래는 Python코드다. 위의 R보다는 훨씬 편하고, 처리속도도 빠르다.

+ Recent posts