zoukankan      html  css  js  c++  java
  • 水仙花数

    一、什么是水仙花数

    水仙花数也称为超完全数字不变数、自幂数、阿姆斯壮数、阿姆是特朗数。

    水仙花数是指一个三位数,每个位数上数字的3次幂之和等于数字它本身。

    水仙花数是自幂数的一种,三位的三次自幂数才叫做水仙花数;三位的水仙花数总够有4个:153,370,371,470

    js写出水仙花数思路分析:

    1、使用for循环查找遍历 从100到 999的所有三位数;

    2、判断遍历的数字是否是各个位数的数字的3次幂数之和是否等于数字本身,如果是即为水仙花数,则在控制台输出(如何选取各个位数)

    (1)选取个位数  模以10,得到余数即为个位数

    (2)选取十位数  i除以10,再对结果进行取整,取整后得到一个两位数的整数。用这个结果对10取模,得到十位数

    (3)选取百位数  三位数除以100,再取整,就得到了百位数。

    • 一位自幂数:独身数
    • 两位自幂数:没有
    • 三位自幂数:水仙花数
    • 四位自幂数:四叶玫瑰数
    • 五位自幂数:五角星数
    • 六位自幂数:六合数
    • 七位自幂数:北斗七星数
    • 八位自幂数:八仙数
    • 九位自幂数:九九重阳数
    • 十位自幂数:十全十美数

    四叶玫瑰数剩下的我们以此类推就好!

    <script type="text/javascript">
        console.time("开始时间")
        for(var i = 1000;i<=9999;i++){
         var gw = i%10;
         var sw = parseInt(i/10)%10;
         var bw = parseInt(i/100)%10;
         var qw = parseInt(i/1000);
     if(i == Math.pow(gw,4)+Math.pow(sw,4)+Math.pow(bw,4)+Math.pow(qw,4)){
        console.log(i);}
     }
        console.timeEnd("开始时间")
    </script>

    但是遇到了九九重阳数就会有一些阻碍

    console.time('九九重阳数');
     var a=[Math.pow(0,9),Math.pow(1,9),Math.pow(2,9),Math.pow(3,9),Math.pow(4,9),Math.pow(5,9),Math.pow(6,9),Math.pow(7,9),Math.pow(8,9),Math.pow(9,9)]
     for(var i = 100000000;i<=999999999;i++){ 
     var sum=0;
     var n=i;
     for (var j = 9; j>0&&sum<=i; j--) {
      sum += a[n % 10];
      n=parseInt(n/10);
    
     }
     if(i==sum){
      console.log(i);
     }
     }
    console.timeEnd('九九重阳数');

     

    console.time()定义和用法!

    console.time() 方法是作为计算器的起始方法。

    该方法一般用于测试程序执行的时长。

    console.timeEnd() 方法为计算器的结束方法,并将执行时长显示在控制台。

    如果一个页面有多个地方需要使用到计算器,可以添加标签参数来设置。

    提示: 在测试该方法的过程中,控制台需要可见 (浏览器按下 F12 打开控制台)。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title></title>
    </head>
    <body>
    
    <h1>JavaScript console.time() 方法</h1>
    
    <p>按下 F12 查看控制台信息。</p>
    
    <script>
    console.time();
    for (i = 0; i < 100000; i++) {
      // 代码部分
    }
    console.timeEnd();
    </script>
    
    <p>计算循环十万次所需要的毫秒数。</p>
    
    <p><strong>注意:</strong> console.time() 方法是计算器的起始方法,结束方法为 console.timeEnd() ,该方法执行后会将执行时长显示在控制台上。</p>
    
    </body>
    </html>

     上面需要用到以下这些方法:

    Math.pow(2,53)  // => 9007199254740992: 2 的 53次幂  
    Math.round(.6) // => 1.0: 四舍五入  
    Math.ceil(.6) // => 1.0: 向上求整  
    Math.floor(.6)  // => 0.0: 向下求整  
    Math.abs(-5)// => 5: 求绝对值  
    Math.max(x,y,z)  // 返回最大值  
    Math.min(x,y,z)// 返回最小值  
    Math.random() // 生成一个大于等于0小于1.0的伪随机数  
    Math.PI // π: 圆周率  
    Math.E // e: 自然对数的底数  
    Math.sqrt(3)// 3的平方根  
    Math.pow(3, 1/3)// 3的立方根  
    Math.sin(0)  // 三角函数: 还有Math.cos, Math.atan等  
    Math.log(10)// 10的自然对数  
    Math.log(100)/Math.LN10 // 以10为底100的对数  
    Math.log(512)/Math.LN2// 以2为底512的对数  
    Math.exp(3)// e的三次幂 

    JavaScript parseInt() 函数

    定义和用法

    parseInt() 函数可解析一个字符串,并返回一个整数。

    当参数 radix 的值为 0,或没有设置该参数时,parseInt() 会根据 string 来判断数字的基数。

    当忽略参数 radix , JavaScript 默认数字的基数如下:

    • 如果 string 以 "0x" 开头,parseInt() 会把 string 的其余部分解析为十六进制的整数。
    • 如果 string 以 0 开头,那么 ECMAScript v3 允许 parseInt() 的一个实现把其后的字符解析为八进制或十六进制的数字。
    • 如果 string 以 1 ~ 9 的数字开头,parseInt() 将把它解析为十进制的整数。

    语法

    parseInt(string, radix)

     

    参数描述
    string 必需。要被解析的字符串。
    radix 可选。表示要解析的数字的基数。该值介于 2 ~ 36 之间。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    </head>
    <body>
    
    <script>
    document.write(parseInt("10") + "<br>") ;
    document.write(parseInt("10.33") + "<br>");
    document.write(parseInt("34 45 66") + "<br>");
    document.write(parseInt(" 60 ") + "<br>");
    document.write(parseInt("40 years") + "<br>");
    document.write(parseInt("He was 40") + "<br>");
    document.write("<br>");
    document.write(parseInt("10",10)+ "<br>");
    document.write(parseInt("010")+ "<br>");
    document.write(parseInt("10",8)+ "<br>");
    document.write(parseInt("0x10")+ "<br>");
    document.write(parseInt("10",16)+ "<br>");
    </script>
    
    </body>
    </html>

    效果图:

    JavaScript parseFloat() 函数

    提示和注释

    注意: 字符串中只返回第一个数字。

    注意: 开头和结尾的空格是允许的。

    注意: 如果字符串的第一个字符不能被转换为数字,那么 parseFloat() 会返回 NaN。

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    </head>
    <body>
    <script>
    document.write(parseFloat("10") + "<br>");
    document.write(parseFloat("10.00") + "<br>");
    document.write(parseFloat("10.33") + "<br>");
    document.write(parseFloat("34 45 66") + "<br>");
    document.write(parseFloat("   60   ") + "<br>");
    document.write(parseFloat("40 years") + "<br>");
    document.write(parseFloat("He was 40") + "<br>");
    </script>
    </body>
    </html>

    效果如下:

  • 相关阅读:
    小程序开发系列(五)悬浮搜索框
    LINQ的连接扩展(左连、右连、全连等)
    小程序开发系列(四)九宫格另一种实现
    python 生成随机图片验证码
    django定时任务小插件
    线程池模块thernd
    python logging 模块记录日志
    django Q条件
    jquery 事件绑定
    jQuery示例
  • 原文地址:https://www.cnblogs.com/niuyaomin/p/11871903.html
Copyright © 2011-2022 走看看