用js怎么实现有一个整数n,写一个函数f(n),返回0到n之间出现的"1"的个数

有一个整数n,写一个函数f(n),返回0到n之间出现的"1"的个数。比如f(13)=6,现在f(1)=1,问有哪些n能满足f(n)=n?
例如:f(13)=6, 因为1,2,3,4,5,6,7,8,9,10,11,12,13.数数1的个数,正好是6.

3个回答

function f(n) {
var cnt = 0;
for (var i = 1; i < n; i++) {
var j = i;
k = 0;
while (j > 0)
{
if (j % 10 == 1) k = 1;
j = j / 10;
}
cnt += k;
}
return cnt;
}

function f(n) {
var cnt = 0;
for (var i = 1; i <= n; i++) {
var len = (i + "").split("1").length - 1;
console.log(len + "+++"+i);
cnt += len;
}
return cnt;
}

function f(n) {
    return [...Array(n)].map((v,i)=>i+1).join('').match(/1/g).length;
}
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问