본문 바로가기

자릿수 합2

56. 프로젝트 오일러 #56 : 제곱수의 자릿수 합 이 문제는 난이도 5% 문제이지만, BigInt 모듈이 없는 언어 사용자는 해당 모듈을 구해야 하는 어려움이 있습니다. 파이썬 등을 이용하면 간단하게 해결할 수 있습니다. 문제는 간단합니다. a, b < 100 안에서 a의 b제곱한 결과를 10진수로 표현할 때, 모든 자릿수의 합 중 최대값을 찾으라는 것입니다. 최소값은 1인 것은 당연하고요. 좀 더 좋은 알고리즘을 찾는다는 것은 어려울 것 같습니다. 그냥 무식한 방법으로 풀어보았습니다. #include #include #include "NxBigInt.h" void solve1() { int v = 9, a, b; for( int i = 2 ; i < 100 ; i++ ) { NxBigInt m = i; for( int j = 2 ; j < 100 ; .. 2016. 6. 13.
[C/C++] 프로젝트 오일러 #20 : 100!의 모든 자릿수 합 구하기 Factorial Digit Sum 문제는 주어진 수의 팩토리얼을 계산하고, 그 결과값에 포함된 모든 자릿수의 합을 구하는 문제입니다. 예를 들어, 10! (10 팩토리얼)은 \(10 \times 9 \times 8 \times \cdots \times 1 = 3,628,800이고, 이 결과값의 자릿수 합은 3 + 6 + 2 + 8 + 8 + 0 + 0 = 27\)입니다.  문제에서는 100!의 결과값에 포함된 자릿수의 합을 구하라는 질문을 제시합니다.  이 문제는 매우 큰 수를 다루기 때문에 정수 연산과 효율적인 계산을 요구합니다. 알고리즘에서 가장 큰 알고리즘을 분류하는 것 중에, 기하급수보다 더 큰 것이 있다면, 모든 경우의 수를 조사하는 팩토리얼(factorial)일겁니다.  뭐 이것보다 더 큰 .. 2015. 1. 17.