초기값을 그렇게 설정하면, D(초기값)이 항상 N보다 작다는 것을 알 수 있습니다.
a = N - (ceil(log10(N)+1))*9 // ceil(x)는 x보다 작지 않은 가장 작은 정수
D(a) = a + S(a) // S(x) 는 x의 각 자리수의 합
= N - (ceil(log10(N)+1))*9 + S(a)
이때, S(a) < (ceil(log10(N)+1))*9 이므로
D(a) < N
2231번 - 분해합
초기값을 그렇게 설정하면, D(초기값)이 항상 N보다 작다는 것을 알 수 있습니다.
a = N - (ceil(log10(N)+1))*9 // ceil(x)는 x보다 작지 않은 가장 작은 정수
D(a) = a + S(a) // S(x) 는 x의 각 자리수의 합
= N - (ceil(log10(N)+1))*9 + S(a)
이때, S(a) < (ceil(log10(N)+1))*9 이므로
D(a) < N
ceil 이 아니라 floor 입니다 ㅠ 헷갈렸네요
댓글을 작성하려면 로그인해야 합니다.
skajd1 4년 전
주석 별표 입력해놓은 곳에서 다른분들 보면 초기값을 N - (입력받은 N의 자릿수*9 ) 로 설정하시던데 그 부분이 도저히 이해가 안갑니다..
저는 이거때문에 실행시간이 좀 오래걸린거같습니다.