1
숫자 x가 x의 자릿수로 표현 될 수 있는지 확인하는 좋은 방법은 거듭 제곱입니다.지수에 대한 질문
예를 들어 5 + 1 + 2 = 8이고 8^3 = 512이기 때문에 512가 작동합니다. 저는 코드가 아닌 일반적인 접근법에 대한 도움이 필요합니다.
감사합니다!
숫자 x가 x의 자릿수로 표현 될 수 있는지 확인하는 좋은 방법은 거듭 제곱입니다.지수에 대한 질문
예를 들어 5 + 1 + 2 = 8이고 8^3 = 512이기 때문에 512가 작동합니다. 저는 코드가 아닌 일반적인 접근법에 대한 도움이 필요합니다.
감사합니다!
import math
def check(n):
# sum digits and take the logarithm of input according to sum
l = math.log(n, sum(int(e) for e in str(n)))
# if diff is very small, then yes it can be expressed
return l - int(l) < 1e-6, int(l) # skip second if only check is needed
check(4) # True, 1
check(512) # True, 3
check(511) # False, 3
어쩌면 수학적 접근법 존재하지만 무차별 방법은 여기에 충분한 같다 : 결과까지 모든 가능한 순열 (5 + 1 + 2 여기 = 8) x' '의 숫자의 합을 계산하려고 'x'(8^1, 8^2, 8^3)보다 크거나 같습니다. – Blackhole