問題
http://community.topcoder.com/stat?c=problem_statement&pm=11138&rd=14438
解き方
各桁の数は与えられた整数の桁数をNとすると、それぞれ2^(N-1)回
足されることになる。
この数を9で割った余りが答えになる。
コード
class LuckyRemainder {
public:
int getLuckyRemainder(string X) {
long long ret=0;
FORE(i,0,X.size())ret=(ret+X[i]-'0')%9;
ret*=pow(2,X.size()-1);
return ret%9;
}
};
public:
int getLuckyRemainder(string X) {
long long ret=0;
FORE(i,0,X.size())ret=(ret+X[i]-'0')%9;
ret*=pow(2,X.size()-1);
return ret%9;
}
};