[Easy] LuckyRemainder
Topcoder SRM 509 Div1
10^k % 9 = 1 인 성질을 파악하면 쉬워지는 문제다.
p를 digit가 abcd 인 10진수라고 해보자
p % 9
= (a * 10^3 + b * 10^2 + c * 10^1 + d * 10^0) % 9
= ( (a % 9) * (10^3 % 9) + (b % 9) * (10^2 % 9) + (c % 9) * (10^1 % 9) + (d % 9) * (10^0 % 9) ) % 9
= ( (a % 9) + (b % 9) + (c % 9) + (d % 9) ) % 9
= (a + b + c + d) % 9
X의 길이를 n이라 하면
X의 i번째 digit가 포함된 조합은 2^(n-1) 가지이므로
super(X) = sum( X[i] * 2^(n-1) ) % 9