1번

한 번 나눌 때마다 한 자리씩 줄어듭니다.
numDigit 0 base = 0
numDigit n base = 1 + numDigit (div n base) base

2번

수학을 약간 이용해서 자리수를 구합니다. 로그를 취하면 자리수가 나오죠?
numDigit n base = ceiling (logBase base n) + 1

평가

절차형 프로그래밍을 많이 하다보면 1번으로 생각하기 쉽습니다. 반복적으로 작업하는 흐름이 머리 속에 떠오르지 않나요?ㅋㅋ

속도는 2번이 더 느립니다. 로그를 구하는 방법 때문일 것으로 추측해봅니다. 게다가 2번은 300자리 정도까지만 제대로 동작하는군요. :(
----
자리수알아내기
Retrieved from http://wiki.zeropage.org/wiki.php/자리수알아내기/나휘동
last modified 2021-02-07 05:30:39