CodeWars 서른 여섯 번째 문제
Updated:
Playing with digits
public static long digPow(int n, int p) {
int copyN = n;
long sum = 0;
for(int i = (int)(Math.log10(n))+p; i > 0 ; i--) {
sum += Math.pow(n % 10, i);
n = n / 10;
}
if(sum % copyN == 0) {
return sum/copyN;
}
return -1;
}
- 문제에 수식이 잘 나와 있어서 적용하는데 어렵지 않았다.
- 단지 n을 자릿수 마다 끊을 때 일의 자리부터 시작하는데 이때 제곱하는 수가 주어진 p로 시작이 아닌 p+자릿수크기의 -1 부터 시작한 다는 것이 for의 조건이 복잡하게 된 계기였다.