wsh3038971
2019-11-11 10:48
采纳率: 83.3%
浏览 577

用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条回答 默认 最新

  • threenewbee 2019-11-11 10:58
    已采纳

    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;
    }

    已采纳该答案
    打赏 评论
  • 到底有多少个小谢 2019-11-11 15:20

    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;
    }

    打赏 评论
  • 「已注销」 2019-11-11 17:54
    function f(n) {
        return [...Array(n)].map((v,i)=>i+1).join('').match(/1/g).length;
    }
    
    打赏 评论

相关推荐 更多相似问题