zoukankan      html  css  js  c++  java
  • JavaScript 找出特殊数字如135 = 1^1 + 3^2 + 5^3

    Description:

    The number' '89' 'is the first integer with more than one digit that fulfills the property partially introduced in the title of this kata. What's the use of saying "Eureka"? Because this sum gives the same number.

    In effect: 89 = 8^1 + 9^2

    The next number in having this property is 135.

    See this property again: 135 = 1^1 + 3^2 + 5^3

    We need a function to collect these numbers, that may receive two integers 'a', 'b' that defines the range '[a, b]' (inclusive) and outputs a list of the sorted numbers in the range that fulfills the property described above.

    Let's see some cases:

    console.log(sumDigPow(1, 10));    //[1, 2, 3, 4, 5, 6, 7, 8, 9]
    console.log(sumDigPow(1, 200));   //[1, 2, 3, 4, 5, 6, 7, 8, 9, 89, 135, 175]
    console.log(sumDigPow(99, 100));  //[]
    

    my answer:

    function sumDigPow(a, b) {
      var arr = [];
      for (var i = a; i <= b; i++) {
        var sum = 0;
        for (var j = 0; j <= String(i).length; j++) {
          sum += Math.pow(parseInt(String(i)[j]), j+1);  
          if (sum === i) arr.push(i);
        }
      }
      return arr;
    }
    

    other answer:

    • forEach方法
    function sumDigPow(a, b) {
      var c = a, result =[];
      while(c < b){
        var sum = 0;
        (c+'').split('').forEach(function(v, i){
          sum += Math.pow(v, i+1);
        });
        if(c === sum)result.push(c);
        c++;
      }
      return result;
    }
    
    • forEach方法中的function回调有三个参数:第一个参数是遍历的数组内容,第二个参数是对应的数组索引,第三个参数是数组本身
    var arr = [1,2,3,4];
    arr.forEach(alert);
    

    等价于:

    var arr = [1, 2, 3, 4];
    for (var k = 0, length = arr.length; k < length; k++) {
     alert(array[k]);
    }
    

    比如:

    var arr = [1,2,3,4];
    arr.forEach(function(value,index,array){
        array[index] == value;    //结果为true
        sum+=value;  
        });
    console.log(sum);    //结果为 10
    
  • 相关阅读:
    NGINX下配置404错误页面的方法分享
    mysql 统计
    nginx日志中访问最多的100个ip及访问次数
    ubuntu下完全安装mcrypt
    ngxtop:在命令行实时监控 Nginx 的神器
    AngularJs 返回上一页
    nginx 报错 upstream timed out (110: Connection timed out)解决方案
    IAP 破解漏洞验证
    AceAdmin-v1.4.0 下载
    TP QQ 微信 微博登录
  • 原文地址:https://www.cnblogs.com/kid2333/p/7462384.html
Copyright © 2011-2022 走看看