var za = function(n,len) {
for (var i = 0; i < len; i++) {
n += "0";
};
return parseInt(n);
};
function nm(num,index,val) {
if (arguments.length == 1) {
if (typeof num == "number") {
num += "";
index = 0;
val = 0;
if(num[index] > 2){
val += za(1,num.length-(index+1));
}
else if(num[index] == 2){
val += 1;
}
return nm(num,index+1,val);
};
}
else if(arguments.length == 3){
if (index == num.length) {
return val;
}
else{
var mxNum = 1,loopNum=0;
for (var i = 1; i <= parseInt(num[index-1]); i++) {
if (i != 2) {
val += za(1,num.length-(index+1));
loopNum = (num[index] === '0' && num[index-1] > mxNum) ? 9 : num[index-1];
for (var j = 0; j < loopNum; j++) {
val++;
};
mxNum++;
}
};
return nm(num,index+1,val);
}
}
};
var n = nm(300);
console.log("val : ",n);
for (var i = 0,test=0; i <= 300; i++){if((i+"").indexOf("2") >= 0){test++;}}
console.log("result : ",test);
이런느낌?
댓글 0