問題
http://community.topcoder.com/stat?c=problem_statement&pm=10177&rd=13515
ある整数Nが与えられる。
各桁の数の積がNになる整数について、
その最小の桁数を求める。
解き方
Nを9から1で順番に割れるか確かめていって、その商の数が桁数になる。
コード
class ProductOfDigits {
public: int smallestNumber(int N) {
int ret=0;
for(int i=9;i>1;i--){
while(N%i==0)N/=i,ret++;
}
if(N!=1)return -1;
if(ret==0)return 1;
return ret;
}
};
public: int smallestNumber(int N) {
int ret=0;
for(int i=9;i>1;i--){
while(N%i==0)N/=i,ret++;
}
if(N!=1)return -1;
if(ret==0)return 1;
return ret;
}
};