zoukankan      html  css  js  c++  java
  • js 数字游戏

    在某网站看到一道js题,觉得有点意思

    Some numbers have funny properties. For example:

    89 --> 8¹ + 9² = 89 * 1

    695 --> 6² + 9³ + 5⁴= 1390 = 695 * 2

    46288 --> 4³ + 6⁴+ 2⁵ + 8⁶ + 8⁷ = 2360688 = 46288 * 51

    Given a positive integer n written as abcd... (a, b, c, d... being digits) and a positive integer p we want to find a positive integer k, if it exists, such as the sum of the digits of n taken to the successive powers of p is equal to k * n. In other words:

    Is there an integer k such as : (a ^ p + b ^ (p+1) + c ^(p+2) + d ^ (p+3) + ...) = n * k

    If it is the case we will return k, if not return -1.

    Note: n, p will always be given as strictly positive integers.

    digPow(89, 1) should return 1 since 8¹ + 9² = 89 = 89 * 1
    digPow(92, 1) should return -1 since there is no k such as 9¹ + 2² equals 92 * k
    digPow(695, 2) should return 2 since 6² + 9³ + 5⁴= 1390 = 695 * 2
    digPow(46288, 3) should return 51 since 4³ + 6⁴+ 2⁵ + 8⁶ + 8⁷ = 236




    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
    <h1 onclick="digPow(46288,3)">Math</h1>
    
    <script>
        function digPow(n, p){
      // ...
      var len = (n.toString()).length;
      var newString = [];
      var intNum = 0;
      for(var i=0;i<len;i++){
        newString[i] = Math.pow(parseInt(nString[i]),p);
        p++;
        intNum += parseInt(newString[i]);
      }
       if(intNum%n ==0 ){
         var multi = parseInt(intNum/n);
         return multi;
       }else{
           return -1;
       }
    }
    </script>
    </body>
    </html>

    有更好的方法欢迎推荐!

     
  • 相关阅读:
    WPF中Name和x:Name
    依赖注入(Dependency Injection)
    SQL复制表操作
    奇异值分解和聚类分析操作流程
    奇异值分解(SVD)
    js读取本地txt文件中的json数据
    Python对字典(directory)按key和value排序
    PowerDesigner导入java类生成类图
    python-Levenshtein几个计算字串相似度的函数解析
    编辑距离算法(Levenshtein)
  • 原文地址:https://www.cnblogs.com/hubgit/p/6893085.html
Copyright © 2011-2022 走看看